var HBcybXc,yqhrOb,_L1WKot,kh0_IW_,wgF0GDv,WnOWnve,UUPkOZJ,htjUmQF,Un4YuIT,_cANFk,oWobUC,G9FofW,xgTWKP,cA5yKj,YyFSyn,hefueL,cvBEJgS;function IT0502(yqhrOb){return HBcybXc[yqhrOb>-0x5d?yqhrOb>0x14?yqhrOb+0x53:yqhrOb>0x14?yqhrOb-0xb:yqhrOb>0x14?yqhrOb-0x58:yqhrOb<-0x5d?yqhrOb+0x26:yqhrOb<0x14?yqhrOb>0x14?yqhrOb+0x47:yqhrOb+0x5c:yqhrOb+0x5e:yqhrOb-0x5d]}HBcybXc=KtdmX9.call(this);function bZr1YLO(HBcybXc,yqhrOb){Object.defineProperty(HBcybXc,IT0502(-0x59),{value:yqhrOb,configurable:!0x0});return HBcybXc}yqhrOb=bZr1YLO(BQwxho((...yqhrOb)=>{var _L1WKot=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x67?yqhrOb<0x67?yqhrOb>0x67?yqhrOb-0x4d:yqhrOb<-0xa?yqhrOb-0x1c:yqhrOb<0x67?yqhrOb<-0xa?yqhrOb+0x20:yqhrOb<0x67?yqhrOb<0x67?yqhrOb+0x9:yqhrOb+0x17:yqhrOb-0x52:yqhrOb+0x51:yqhrOb+0x45:yqhrOb-0x6]},0x1);typeof(yqhrOb.length=IT0502(-0x5b),yqhrOb[IT0502(-0x5c)]=yqhrOb[_L1WKot(0x6)]);return yqhrOb[_L1WKot(-0x9)](yqhrOb[IT0502(-0x5a)]())},0x0),IT0502(-0x5b))(ViBb39,PuWdciV);var PxWxgB=[],ekwLFR=IT0502(-0x5a),SoZofCM=BQwxho((...yqhrOb)=>{var _L1WKot=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x57?yqhrOb>0x57?yqhrOb+0x4:yqhrOb<0x57?yqhrOb<-0x1a?yqhrOb-0x1b:yqhrOb+0x19:yqhrOb-0x63:yqhrOb-0x4]},0x1);void(yqhrOb[IT0502(-0x59)]=IT0502(-0x5a),yqhrOb.Q_m686=IT0502(-0x54),yqhrOb[IT0502(-0x4f)]=[QsPb5z(IT0502(-0x5a)),'\u0028\u0029\u0069\u0064\u007c\u003c\u0041\u0040\u0045',QsPb5z(yqhrOb[IT0502(-0x58)]-0x19),'\u0078\u002c\u003e\u0063\u006b\u0039\u0075\u0053\u0034\u004e\u0077\u003c\u004e\u006c\u0035\u0058\u006b\u0072\u0052\u0065\u005e\u003e\u0031\u0058\u004b\u0021\u0070\u0033\u007c\u004f\u0047\u006d\u0042\u004d\u0071\u003b\u0042\u005b\u002f\u002a\u004a\u0025\u0067\u003f\u0041','\u0032\u0044\u0043\u0062\u004e\u0033\u0043\u0071\u0068\u0038\u007c\u0054\u0045\u0050\u002a\u0054\u0039\u0029\u0047\u0066\u003a\u006b\u005e\u0048\u0045\u0054\u0053\u0021\u0049\u0050\u004d\u006d\u0056\u0029\u0039\u0066\u0061',QsPb5z(0x2),QsPb5z(_L1WKot(-0x10)),QsPb5z(_L1WKot(-0x12)),QsPb5z(_L1WKot(0x15)),QsPb5z(0x6),QsPb5z(yqhrOb[_L1WKot(-0x15)]-IT0502(-0x56)),QsPb5z(0x8),QsPb5z(0x9),QsPb5z(yqhrOb[_L1WKot(-0x15)]-IT0502(-0x57)),QsPb5z(0xb),QsPb5z(IT0502(-0x3e)),QsPb5z(IT0502(-0x39)),QsPb5z(IT0502(-0x31)),QsPb5z(_L1WKot(-0x6)),QsPb5z(IT0502(-0x57)),QsPb5z(IT0502(-0x2f)),QsPb5z(0x12),QsPb5z(_L1WKot(-0x13)),QsPb5z(_L1WKot(0x4)),QsPb5z(_L1WKot(0x18)),QsPb5z(yqhrOb.Q_m686-IT0502(-0x55)),QsPb5z(_L1WKot(0x20)),QsPb5z(yqhrOb.Q_m686-_L1WKot(-0x18)),QsPb5z(IT0502(-0x40)),QsPb5z(_L1WKot(-0x11)),QsPb5z(IT0502(-0x20)),QsPb5z(IT0502(-0x36)),QsPb5z(yqhrOb[IT0502(-0x58)]+_L1WKot(-0x10)),QsPb5z(IT0502(-0x52)),QsPb5z(IT0502(-0x4b)),QsPb5z(_L1WKot(0x1a)),QsPb5z(0x21),QsPb5z(_L1WKot(0x29)),QsPb5z(0x23),QsPb5z(yqhrOb[_L1WKot(-0x15)]+0xa),QsPb5z(IT0502(-0x46)),QsPb5z(IT0502(-0x51)),QsPb5z(_L1WKot(0x2c)),QsPb5z(_L1WKot(-0xd)),QsPb5z(0x29),QsPb5z(0x2a),QsPb5z(0x2b),QsPb5z(yqhrOb[_L1WKot(-0x15)]+_L1WKot(-0x4)),QsPb5z(IT0502(-0x33)),QsPb5z(_L1WKot(0x2f)),QsPb5z(_L1WKot(0x7)),QsPb5z(_L1WKot(-0x1)),QsPb5z(0x31),QsPb5z(_L1WKot(0x43)),QsPb5z(_L1WKot(0x1)),QsPb5z(0x34),QsPb5z(0x35),QsPb5z(_L1WKot(0x26)),QsPb5z(_L1WKot(0x33)),QsPb5z(yqhrOb[IT0502(-0x58)]+IT0502(-0x52)),QsPb5z(IT0502(-0xd)),QsPb5z(IT0502(-0xc)),QsPb5z(yqhrOb[IT0502(-0x58)]+IT0502(-0x1b)),QsPb5z(IT0502(-0x45)),QsPb5z(0x3d),QsPb5z(IT0502(-0x9)),QsPb5z(IT0502(-0x4a)),QsPb5z(yqhrOb[_L1WKot(-0x15)]+IT0502(-0x51)),QsPb5z(0x41),QsPb5z(yqhrOb.Q_m686+_L1WKot(-0xd)),QsPb5z(yqhrOb[_L1WKot(-0x15)]+0x29),QsPb5z(0x44),QsPb5z(_L1WKot(0x3d)),QsPb5z(yqhrOb.Q_m686+IT0502(-0x28)),QsPb5z(0x47),QsPb5z(0x48),QsPb5z(_L1WKot(0x34)),QsPb5z(yqhrOb.Q_m686+(yqhrOb[_L1WKot(-0x15)]+_L1WKot(0x1c))),QsPb5z(IT0502(-0x5)),QsPb5z(_L1WKot(0x40)),QsPb5z(0x4d),QsPb5z(IT0502(-0x3b)),QsPb5z(0x4f),QsPb5z(_L1WKot(0x2)),QsPb5z(yqhrOb[IT0502(-0x58)]+0x37)]);if(yqhrOb.Q_m686>_L1WKot(-0xb)){return yqhrOb[0x7c]}else{var kh0_IW_=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb>0x11?yqhrOb<0x82?yqhrOb>0x11?yqhrOb-0x12:yqhrOb+0x3d:yqhrOb-0x26:yqhrOb+0x17]},0x1);return ekwLFR?yqhrOb[kh0_IW_(0x1f)].pop():ekwLFR++,yqhrOb[_L1WKot(-0xc)]}},0x0)();function KNQsed(){try{return global||window||new Function(QsPb5z(IT0502(0x5)))()}catch(e){try{return this}catch(e){return{}}}}!(_L1WKot=KNQsed()||{},kh0_IW_=_L1WKot[QsPb5z(IT0502(-0x3a))],wgF0GDv=_L1WKot[QsPb5z(IT0502(0x7))],WnOWnve=_L1WKot[QsPb5z(IT0502(-0x34))],UUPkOZJ=_L1WKot[QsPb5z(0x56)]||String,htjUmQF=_L1WKot[QsPb5z(IT0502(-0x37))]||Array,Un4YuIT=BQwxho(()=>{var yqhrOb,_L1WKot,kh0_IW_;function wgF0GDv(yqhrOb){return HBcybXc[yqhrOb<0xa2?yqhrOb>0x31?yqhrOb>0x31?yqhrOb<0x31?yqhrOb-0x19:yqhrOb<0x31?yqhrOb+0x35:yqhrOb<0x31?yqhrOb+0x50:yqhrOb<0xa2?yqhrOb>0xa2?yqhrOb-0x37:yqhrOb-0x32:yqhrOb+0x42:yqhrOb-0x7:yqhrOb-0x61:yqhrOb-0x1a]}void(yqhrOb=new htjUmQF(0x80),_L1WKot=UUPkOZJ[QsPb5z(IT0502(-0x48))]||UUPkOZJ[QsPb5z(wgF0GDv(0x40))],kh0_IW_=[]);return bZr1YLO(BQwxho((...WnOWnve)=>{var htjUmQF;function Un4YuIT(WnOWnve){return HBcybXc[WnOWnve<-0x11?WnOWnve+0x4b:WnOWnve>0x60?WnOWnve+0x5b:WnOWnve>0x60?WnOWnve+0x10:WnOWnve>0x60?WnOWnve-0xb:WnOWnve+0x10]}void(WnOWnve.length=Un4YuIT(-0x1),WnOWnve[Un4YuIT(0x0)]=WnOWnve.Rvix6ke);var _cANFk,oWobUC;typeof(WnOWnve[Un4YuIT(0x0)]=WnOWnve[Un4YuIT(-0xe)][QsPb5z(0x5a)],kh0_IW_[QsPb5z(0x5a)]=wgF0GDv(0x34));for(htjUmQF=wgF0GDv(0x34);htjUmQF{return HBcybXc[WnOWnve<-0x15?WnOWnve+0x5f:WnOWnve>0x5c?WnOWnve-0x1:WnOWnve>0x5c?WnOWnve+0x31:WnOWnve<0x5c?WnOWnve+0x14:WnOWnve-0x8]},0x1);_cANFk=(oWobUC&G9FofW(-0x3))<{return HBcybXc[WnOWnve<0x59?WnOWnve+0x2b:WnOWnve-0x5a]},0x1);_cANFk=(oWobUC&IT0502(-0x49))<<0xc|(WnOWnve[xgTWKP(0x5c)][htjUmQF++]&IT0502(-0x4a))<<0x6|WnOWnve[0x0][htjUmQF++]&0x3f}else{if(UUPkOZJ[QsPb5z(Un4YuIT(0x4))]){var cA5yKj=BQwxho(WnOWnve=>{return HBcybXc[WnOWnve<0x22?WnOWnve+0x6:WnOWnve>0x93?WnOWnve-0x21:WnOWnve>0x22?WnOWnve>0x22?WnOWnve-0x23:WnOWnve+0x60:WnOWnve+0x12]},0x1);_cANFk=(oWobUC&wgF0GDv(0x91))<{return HBcybXc[yqhrOb>0xf?yqhrOb-0x1a:yqhrOb<-0x62?yqhrOb+0x40:yqhrOb<0xf?yqhrOb<0xf?yqhrOb>-0x62?yqhrOb>-0x62?yqhrOb>0xf?yqhrOb+0x53:yqhrOb<-0x62?yqhrOb+0x3b:yqhrOb<-0x62?yqhrOb+0x3b:yqhrOb+0x61:yqhrOb-0x25:yqhrOb+0x57:yqhrOb-0x59:yqhrOb+0x32]},0x1);void(yqhrOb.length=_L1WKot(-0x52),yqhrOb.PVJ6fi=IT0502(-0x46));if(typeof kh0_IW_!==QsPb5z(0x5d)&&kh0_IW_){var UUPkOZJ=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x36?yqhrOb+0x5c:yqhrOb>0xa7?yqhrOb+0x56:yqhrOb>0x36?yqhrOb>0xa7?yqhrOb+0x1e:yqhrOb<0xa7?yqhrOb>0xa7?yqhrOb+0x29:yqhrOb<0x36?yqhrOb+0x15:yqhrOb-0x37:yqhrOb-0xd:yqhrOb+0xd]},0x1);return new kh0_IW_()[QsPb5z(UUPkOZJ(0x9b))](new wgF0GDv(yqhrOb[_L1WKot(-0x5f)]))}else{if(typeof WnOWnve!==QsPb5z(0x5d)&&WnOWnve){return WnOWnve[QsPb5z(0x5f)](yqhrOb[_L1WKot(-0x5f)])[QsPb5z(0x60)](QsPb5z(yqhrOb.PVJ6fi+_L1WKot(-0x4a)))}else{var htjUmQF=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x58?yqhrOb<0x58?yqhrOb>-0x19?yqhrOb<0x58?yqhrOb>-0x19?yqhrOb+0x18:yqhrOb-0x49:yqhrOb+0x43:yqhrOb+0x54:yqhrOb-0x17:yqhrOb+0x48]},0x1);return Un4YuIT(yqhrOb[htjUmQF(-0x16)])}}}void(_cANFk=Cq8zsn[QsPb5z(IT0502(-0x43))](IT0502(-0x3d),[0x23]),oWobUC=[Cq8zsn(IT0502(-0x4b)),Cq8zsn(IT0502(-0x2a)),Cq8zsn(0x2e),Cq8zsn(IT0502(-0x44)),Cq8zsn[QsPb5z(IT0502(-0x43))](void 0x0,[IT0502(-0x42)]),Cq8zsn(IT0502(-0x45)),Cq8zsn(IT0502(-0x41)),Cq8zsn(0x51)],G9FofW=Cq8zsn(IT0502(-0x40)),xgTWKP=Cq8zsn(IT0502(-0x3f)),cA5yKj={[QsPb5z(IT0502(-0x35))]:Cq8zsn(IT0502(-0x3e)),[QsPb5z(0x64)]:Cq8zsn(IT0502(-0x57)),[QsPb5z(IT0502(-0x1c))]:Cq8zsn[QsPb5z(IT0502(-0x43))](IT0502(-0x3d),[IT0502(-0x4b)]),[QsPb5z(IT0502(-0x30))]:Cq8zsn(0x2d),[QsPb5z(0x67)]:Cq8zsn(IT0502(-0x3c)),[QsPb5z(IT0502(-0x1))]:Cq8zsn(IT0502(-0x3b)),[QsPb5z(IT0502(0x6))]:Cq8zsn(IT0502(-0x3a))},YyFSyn=Cq8zsn(0x9),hefueL=BQwxho((...yqhrOb)=>{var _L1WKot=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<-0x57?yqhrOb+0x23:yqhrOb<-0x57?yqhrOb+0x3c:yqhrOb>0x1a?yqhrOb+0x52:yqhrOb<0x1a?yqhrOb<-0x57?yqhrOb-0xf:yqhrOb>0x1a?yqhrOb-0x1f:yqhrOb<-0x57?yqhrOb+0x2:yqhrOb<0x1a?yqhrOb<0x1a?yqhrOb+0x56:yqhrOb-0x47:yqhrOb+0x31:yqhrOb+0x30]},0x1);void(yqhrOb[_L1WKot(-0x53)]=0x0,yqhrOb[_L1WKot(-0x32)]=0xa,yqhrOb[_L1WKot(-0x54)]=Cq8zsn(IT0502(-0x39)),yqhrOb[IT0502(-0x38)]=-IT0502(-0x37),yqhrOb.jtgSu_={[QsPb5z(yqhrOb.ak5B5cG-(yqhrOb.ak5B5cG-IT0502(0x9)))]:Cq8zsn(0xb)},yqhrOb[_L1WKot(-0x2c)]={L8GQ2u:YyFSyn,l8hBMb:Cq8zsn(yqhrOb[_L1WKot(-0x32)]+0x61),Vb6wKHr:yqhrOb[IT0502(-0x38)]-(yqhrOb[IT0502(-0x38)]-IT0502(-0x36)),Zv1i1e:yqhrOb[_L1WKot(-0x32)]+0x95,HEEFVTE:yqhrOb.jtgSu_[QsPb5z(yqhrOb[_L1WKot(-0x32)]+0xc1)],vSUEPA:[],uYU_1rA:BQwxho((yqhrOb=cA5yKj[QsPb5z(IT0502(-0x35))])=>{var kh0_IW_=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb>0x34?yqhrOb-0x4e:yqhrOb>-0x3d?yqhrOb+0x3c:yqhrOb-0x6]},0x1);if(!hefueL.vSUEPA[kh0_IW_(-0x3a)]){hefueL.vSUEPA.push(_L1WKot(-0x2e))}return hefueL.vSUEPA[yqhrOb]},0x0),WiCyCK7:yqhrOb[IT0502(-0x5a)]});return yqhrOb[_L1WKot(-0x32)]>_L1WKot(-0x2d)?yqhrOb[IT0502(-0x42)]:yqhrOb[IT0502(-0x32)]},0x0)());var KobvOg,Aw7vJ7,eBr2Pp=function(...yqhrOb){var _L1WKot,kh0_IW_;function wgF0GDv(yqhrOb){return HBcybXc[yqhrOb<0x1e?yqhrOb<0x1e?yqhrOb>-0x53?yqhrOb<0x1e?yqhrOb+0x52:yqhrOb+0x2:yqhrOb-0x42:yqhrOb+0x3c:yqhrOb-0x42]}void(yqhrOb[wgF0GDv(-0x4f)]=0x0,yqhrOb[wgF0GDv(-0x38)]=-wgF0GDv(-0x3b),yqhrOb[yqhrOb[wgF0GDv(-0x38)]+0x3c]={[QsPb5z(0x6b)]:Cq8zsn(0x10)},_L1WKot=function(){try{var yqhrOb=BQwxho(_L1WKot=>{return HBcybXc[_L1WKot>0x53?_L1WKot-0xa:_L1WKot<-0x1e?_L1WKot-0x4d:_L1WKot>-0x1e?_L1WKot>0x53?_L1WKot+0x4f:_L1WKot<-0x1e?_L1WKot+0x4b:_L1WKot<-0x1e?_L1WKot+0x2e:_L1WKot<0x53?_L1WKot<-0x1e?_L1WKot-0x53:_L1WKot>0x53?_L1WKot-0x52:_L1WKot+0x1d:_L1WKot-0x55:_L1WKot-0x18]},0x1);return global||window||new Function(Cq8zsn[QsPb5z(IT0502(-0x43))](yqhrOb(0x2),[yqhrOb(0xe)])+Cq8zsn(0xf))()}catch(e){return kh0_IW_[Cq8zsn[QsPb5z(wgF0GDv(-0x39))](wgF0GDv(-0x33),[0x10])](this)}},kh0_IW_=function(){try{return this}catch(e){return null}});if(yqhrOb[yqhrOb[wgF0GDv(-0x38)]+0x6f]>wgF0GDv(0x6)){return yqhrOb[0xd1]}else{var WnOWnve=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb>0x5a?yqhrOb-0x3e:yqhrOb>-0x17?yqhrOb<0x5a?yqhrOb>-0x17?yqhrOb+0x16:yqhrOb+0x5:yqhrOb-0x23:yqhrOb-0x1c]},0x1);return Aw7vJ7=kh0_IW_[yqhrOb[yqhrOb[WnOWnve(0x4)]-(yqhrOb[wgF0GDv(-0x38)]-WnOWnve(-0x14))][QsPb5z(WnOWnve(0x50))]](this,JMw6wy),KobvOg=_L1WKot[Cq8zsn(0x10)](this)}}[cA5yKj[QsPb5z(0x64)]]();bZr1YLO(qrQ12K,IT0502(-0x5b));function qrQ12K(...HBcybXc){!(HBcybXc.length=0x2,HBcybXc.SoEP64a=HBcybXc[0x0]);switch(cvBEJgS){case hefueL.Vb6wKHr>-IT0502(-0x16)?-IT0502(-0x52):null:return HBcybXc.SoEP64a-HBcybXc[0x1]}}bZr1YLO(sdG1qRY,0x1);function sdG1qRY(...yqhrOb){!(yqhrOb[IT0502(-0x59)]=IT0502(-0x4d),yqhrOb.gDqWWZ=-0x60);if(yqhrOb.gDqWWZ>-0x8){return yqhrOb[-IT0502(-0x30)]}else{var _L1WKot=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb>0x4e?yqhrOb+0x2b:yqhrOb<0x4e?yqhrOb<0x4e?yqhrOb<0x4e?yqhrOb<-0x23?yqhrOb+0x13:yqhrOb<-0x23?yqhrOb-0x5:yqhrOb>0x4e?yqhrOb-0x5a:yqhrOb>0x4e?yqhrOb+0x55:yqhrOb+0x22:yqhrOb+0x2d:yqhrOb-0x23:yqhrOb+0x6]},0x1);return yqhrOb[yqhrOb.gDqWWZ+0x60]=cvBEJgS+(cvBEJgS=yqhrOb[_L1WKot(-0x20)],0x0),yqhrOb[0x0]}}cvBEJgS=cvBEJgS;class V9hHGf{constructor(yqhrOb){var _L1WKot,kh0_IW_;function wgF0GDv(yqhrOb){return HBcybXc[yqhrOb>0xb0?yqhrOb-0x49:yqhrOb<0xb0?yqhrOb-0x40:yqhrOb+0x42]}typeof(_L1WKot=Cq8zsn(wgF0GDv(0x55)),kh0_IW_=Cq8zsn(wgF0GDv(0x6d)));const WnOWnve=yqhrOb=>{function WnOWnve(yqhrOb){return HBcybXc[yqhrOb<0x69?yqhrOb+0x7:yqhrOb+0x57]}if(''+JMw6wy(0x223)!==kh0_IW_&&hefueL.l8hBMb[Cq8zsn(WnOWnve(0xe))](WnOWnve(0x27))==WnOWnve(0x28)){function UUPkOZJ(yqhrOb){return HBcybXc[yqhrOb>-0x43?yqhrOb>-0x43?yqhrOb+0x42:yqhrOb+0x14:yqhrOb-0x36]}while(hefueL.Zv1i1e>-UUPkOZJ(-0x22));}const htjUmQF=new(JMw6wy(0x223)),Un4YuIT=htjUmQF.stack||'',_cANFk=Un4YuIT.split('\u000a'),oWobUC=_cANFk[qrQ12K(_cANFk.length,wgF0GDv(0x4f),cvBEJgS=-wgF0GDv(0x4a))],G9FofW=oWobUC.match(/\/([^\/]+\.js)/);if(G9FofW&&hefueL.l8hBMb[_L1WKot](IT0502(-0x2e))==WnOWnve(0x28)){var xgTWKP;function cA5yKj(yqhrOb){return HBcybXc[yqhrOb>0x40?yqhrOb-0x4f:yqhrOb>-0x31?yqhrOb>0x40?yqhrOb-0x59:yqhrOb<0x40?yqhrOb>0x40?yqhrOb+0x11:yqhrOb>0x40?yqhrOb-0x53:yqhrOb>-0x31?yqhrOb<0x40?yqhrOb+0x30:yqhrOb-0x2a:yqhrOb-0x28:yqhrOb-0x4f:yqhrOb+0x60]}xgTWKP=Cq8zsn(cA5yKj(-0x1b));const YyFSyn=G9FofW[wgF0GDv(0x4f)];if((YyFSyn!==this.passwordToEncode||yqhrOb!==this.passwordToEncode)&&hefueL.l8hBMb[xgTWKP](cA5yKj(-0x2))==IT0502(-0x2d)){throw new(JMw6wy(WnOWnve(0x29)))}}else{throw new(JMw6wy(IT0502(-0x2c)))}};void(this.passwordToEncode=Cq8zsn(wgF0GDv(0x46)),WnOWnve(this.passwordToEncode),this.count=yqhrOb)}}void(window[xgTWKP+Cq8zsn(IT0502(-0x2b))+'\x72']=V9hHGf,bZr1YLO(JMw6wy,0x1));function JMw6wy(...yqhrOb){var _L1WKot=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x2e?yqhrOb<0x2e?yqhrOb>0x2e?yqhrOb+0x2:yqhrOb>-0x43?yqhrOb<-0x43?yqhrOb-0x25:yqhrOb>0x2e?yqhrOb+0x1b:yqhrOb<-0x43?yqhrOb-0x12:yqhrOb+0x42:yqhrOb-0x4e:yqhrOb+0x61:yqhrOb+0xb]},0x1);typeof(yqhrOb[IT0502(-0x59)]=IT0502(-0x4d),yqhrOb[_L1WKot(-0xa)]=yqhrOb.FGmT3U5,yqhrOb[IT0502(-0x4d)]=Cq8zsn[QsPb5z(IT0502(-0x43))](IT0502(-0x3d),[0x2a]),yqhrOb[_L1WKot(-0x4)]=[Cq8zsn(IT0502(-0x2a)),Cq8zsn(IT0502(-0x29)),Cq8zsn(_L1WKot(-0x8)),Cq8zsn(IT0502(-0x28)),Cq8zsn(IT0502(-0x47))],yqhrOb[_L1WKot(-0x5)]=Cq8zsn(IT0502(-0x36)),yqhrOb[IT0502(-0x21)]=Cq8zsn(IT0502(-0x40)),yqhrOb.fa4loox=_L1WKot(-0xb),yqhrOb[yqhrOb[_L1WKot(-0xc)]-0x7b]={[QsPb5z(_L1WKot(0x25))]:Cq8zsn(IT0502(-0x27)),[QsPb5z(0x6d)]:Cq8zsn[QsPb5z(0x6e)](_L1WKot(-0x23),yqhrOb[IT0502(-0x26)]-(yqhrOb[IT0502(-0x26)]-IT0502(-0x2a)))},yqhrOb[yqhrOb[IT0502(-0x26)]+IT0502(-0x31)]=IT0502(-0x3d));switch(yqhrOb[yqhrOb[_L1WKot(-0xc)]-_L1WKot(-0xb)]){case hefueL.L8GQ2u[Cq8zsn(_L1WKot(-0x2d))](_L1WKot(-0x33))==IT0502(-0x13)?_L1WKot(-0x12):IT0502(-0xa):yqhrOb[_L1WKot(-0xa)]=yqhrOb[0x5][QsPb5z(0x6c)]||Aw7vJ7[Cq8zsn(IT0502(-0x27))];break;case!(hefueL.HEEFVTE[Cq8zsn(_L1WKot(-0x9))](0x0)==IT0502(-0x11))?0xac:0x327:return KobvOg[Cq8zsn(_L1WKot(-0x8))]||Aw7vJ7[Cq8zsn(_L1WKot(-0x8))];case!hefueL.uYU_1rA()?-0xdd:0x889:yqhrOb[_L1WKot(-0xa)]=G9FofW||Aw7vJ7[yqhrOb[IT0502(-0x21)]];break;case hefueL.uYU_1rA()?0xd1:-_L1WKot(-0x1c):return KobvOg[Cq8zsn[QsPb5z(IT0502(-0x43))](IT0502(-0x3d),[_L1WKot(-0x3a)])]||Aw7vJ7[Cq8zsn(yqhrOb[_L1WKot(-0xc)]-_L1WKot(-0x16))];case!(hefueL.Zv1i1e>-0x2f)?-IT0502(-0x3e):0xc6c:yqhrOb[IT0502(-0x24)]=Cq8zsn(IT0502(-0x20))||Aw7vJ7[Cq8zsn(0x1b)];break;case yqhrOb[_L1WKot(-0xc)]+0xe34:return KobvOg[Cq8zsn(0x1c)]||Aw7vJ7[yqhrOb[_L1WKot(-0x5)]];case!(hefueL.HEEFVTE[yqhrOb[_L1WKot(-0x4)][IT0502(-0x5a)]+Cq8zsn(_L1WKot(-0x38))](_L1WKot(-0x40))==yqhrOb.fa4loox-IT0502(-0x1d))?-0x1f:0x716:return KobvOg[cA5yKj[QsPb5z(IT0502(-0x1c))]]||Aw7vJ7[oWobUC[0x0]];case 0x7c0:return KobvOg[yqhrOb.BBnBcFi[_L1WKot(-0x33)]+Cq8zsn(IT0502(-0x1b))]||Aw7vJ7[Cq8zsn(0x20)+Cq8zsn(0x21)];case!(hefueL.l8hBMb[Cq8zsn(IT0502(-0x47))](_L1WKot(-0x14))==IT0502(-0x2d))?yqhrOb.fa4loox-IT0502(-0x3c):0x9dd:yqhrOb[yqhrOb.fa4loox+IT0502(-0x31)]=Cq8zsn(IT0502(-0x1a))+_cANFk||Aw7vJ7[Cq8zsn(yqhrOb[_L1WKot(-0xc)]-IT0502(-0x19))];break;case!(hefueL.l8hBMb[Cq8zsn[QsPb5z(_L1WKot(-0x29))](IT0502(-0x3d),[_L1WKot(-0x2d)])](0x5)=='\u0079')?yqhrOb[_L1WKot(-0xc)]-IT0502(-0x37):0x4a3:return KobvOg[yqhrOb.BBnBcFi[_L1WKot(-0x41)]+Cq8zsn[QsPb5z(_L1WKot(0x2))](IT0502(-0x3d),_L1WKot(-0x2c))]||Aw7vJ7[Cq8zsn[QsPb5z(_L1WKot(-0x29))](_L1WKot(-0x23),[_L1WKot(-0x37)])];case hefueL.HEEFVTE[oWobUC[IT0502(-0x4d)]+Cq8zsn(0x1e)](_L1WKot(-0x40))==yqhrOb[IT0502(-0x26)]-IT0502(-0x1d)?yqhrOb.fa4loox+0xaa7:0x6a:yqhrOb[_L1WKot(-0xa)]=Cq8zsn(0x27)||Aw7vJ7[Cq8zsn[QsPb5z(IT0502(-0x18))](_L1WKot(-0x23),IT0502(-0x17))];break;case yqhrOb.fa4loox+0x125:yqhrOb[IT0502(-0x24)]=Cq8zsn(0x28)+'\u006e\u0074'||Aw7vJ7[Cq8zsn(0x29)];break;case!(hefueL.Vb6wKHr>-_L1WKot(0x4))?0xe4:0x606:yqhrOb[_L1WKot(-0xa)]=yqhrOb[yqhrOb[IT0502(-0x26)]-IT0502(-0x15)]+Cq8zsn(0x2b)||Aw7vJ7[Cq8zsn(0x2a)+Cq8zsn[QsPb5z(0x6e)](void 0x0,0x2b)];break;case!hefueL.uYU_1rA()?-0xbb:0x90f:yqhrOb[_L1WKot(-0xa)]=Cq8zsn(IT0502(-0x28))||Aw7vJ7[yqhrOb[_L1WKot(-0x4)][_L1WKot(-0x39)]];break;case hefueL.uYU_1rA()?0x14e:IT0502(-0x36):return KobvOg[cA5yKj[QsPb5z(IT0502(-0x30))]]||Aw7vJ7[Cq8zsn[QsPb5z(IT0502(-0x43))](IT0502(-0x3d),[IT0502(-0x33)])];case hefueL.uYU_1rA()?0x30a:-_L1WKot(-0x24):yqhrOb[IT0502(-0x24)]=Cq8zsn(_L1WKot(0x6))||Aw7vJ7[oWobUC[0x2]];break;case!(hefueL.l8hBMb[Cq8zsn(0x12)](0x5)==_L1WKot(-0x13))?-0xbf:0x11e5:yqhrOb[yqhrOb[_L1WKot(-0xc)]+_L1WKot(-0x17)]=cA5yKj[QsPb5z(0x67)]||Aw7vJ7[Cq8zsn(IT0502(-0x3c))];break;case!(hefueL.l8hBMb[Cq8zsn(0x12)](IT0502(-0x2e))==IT0502(-0x2d))?-0xb1:0xfda:return KobvOg[oWobUC[_L1WKot(-0x39)]]||Aw7vJ7[Cq8zsn[QsPb5z(0x6e)](_L1WKot(-0x23),IT0502(-0x44))];case hefueL.L8GQ2u[Cq8zsn[QsPb5z(0x6e)](IT0502(-0x3d),0x12)](_L1WKot(-0x33))==_L1WKot(0x7)?0xda1:IT0502(-0x27):return KobvOg[Cq8zsn(0x31)+IT0502(-0x12)]||Aw7vJ7[Cq8zsn[QsPb5z(yqhrOb[_L1WKot(-0xc)]-_L1WKot(-0x2d))](void 0x0,yqhrOb[_L1WKot(-0xc)]-IT0502(0x1))+IT0502(-0x12)];case!(hefueL.HEEFVTE[Cq8zsn(_L1WKot(-0x9))](0x0)==IT0502(-0x11))?yqhrOb[_L1WKot(-0xc)]-IT0502(-0x52):0x1388:yqhrOb[0x8e]=Cq8zsn(0x32)||Aw7vJ7[Cq8zsn(0x32)];break;case hefueL.L8GQ2u[Cq8zsn[QsPb5z(_L1WKot(-0x29))](IT0502(-0x3d),[_L1WKot(-0x2d)])](yqhrOb[_L1WKot(-0xc)]-_L1WKot(0x5))==_L1WKot(0x7)?yqhrOb[IT0502(-0x26)]+0x12a2:0x51:yqhrOb[_L1WKot(-0xa)]=Cq8zsn[QsPb5z(yqhrOb[_L1WKot(-0xc)]-_L1WKot(-0x38))](_L1WKot(-0x23),[IT0502(-0x42)])||Aw7vJ7[oWobUC[IT0502(-0x55)]];break;case 0xb50:yqhrOb[yqhrOb[IT0502(-0x26)]+0xe]=Cq8zsn[QsPb5z(0x6e)](_L1WKot(-0x23),0x34)||Aw7vJ7[Cq8zsn(0x34)];break;case hefueL.WiCyCK7[yqhrOb[IT0502(-0x1e)][_L1WKot(-0x3b)]](IT0502(-0x4d))==_L1WKot(0x12)?0xf35:0xa6:yqhrOb[0x8e]=Cq8zsn(0x35)||Aw7vJ7[Cq8zsn(0x35)];break;case yqhrOb[IT0502(-0x26)]+0x10c:return KobvOg[Cq8zsn[QsPb5z(IT0502(-0x18))](void 0x0,_L1WKot(-0x3))+Cq8zsn(IT0502(-0x10))+_L1WKot(0xc)]||Aw7vJ7[Cq8zsn(_L1WKot(-0x3))+Cq8zsn(yqhrOb[_L1WKot(-0xc)]-IT0502(-0xf))+_L1WKot(0xc)];case 0x80e:return KobvOg[Cq8zsn(0x38)]||Aw7vJ7[Cq8zsn(_L1WKot(0xd))+Cq8zsn(_L1WKot(0xe))];case hefueL.l8hBMb[Cq8zsn(_L1WKot(-0x2d))](_L1WKot(-0x14))==_L1WKot(-0x13)?0x6a3:-(yqhrOb[IT0502(-0x26)]-IT0502(-0xb)):yqhrOb[_L1WKot(-0xa)]=Cq8zsn(_L1WKot(0x13))||Aw7vJ7[oWobUC[IT0502(-0x2e)]+Cq8zsn(_L1WKot(0x10))];break;case 0x1261:yqhrOb[IT0502(-0x24)]=Cq8zsn(IT0502(-0x9))||Aw7vJ7[Cq8zsn(_L1WKot(-0x30))+Cq8zsn[QsPb5z(_L1WKot(-0x29))](_L1WKot(-0x23),[IT0502(0x12)])];break;case!(hefueL.WiCyCK7[Cq8zsn(IT0502(-0x47))](_L1WKot(-0x33))==_L1WKot(0x12))?-IT0502(-0x3c):0xf9a:return KobvOg[Cq8zsn(yqhrOb[IT0502(-0x26)]-0x3f)]||Aw7vJ7[Cq8zsn(0x42)+Cq8zsn(0x43)];case hefueL.HEEFVTE[yqhrOb[_L1WKot(-0x14)][QsPb5z(0x6d)]+Cq8zsn(_L1WKot(-0x38))](_L1WKot(-0x40))==IT0502(-0x11)?0xbe2:-IT0502(-0x2e):yqhrOb[yqhrOb[_L1WKot(-0xc)]+_L1WKot(-0x17)]=Cq8zsn[QsPb5z(IT0502(-0x18))](void 0x0,yqhrOb.fa4loox-IT0502(-0x45))+Cq8zsn(yqhrOb[_L1WKot(-0xc)]-_L1WKot(0x13))||Aw7vJ7[Cq8zsn(0x44)+Cq8zsn[QsPb5z(_L1WKot(-0x29))](_L1WKot(-0x23),[IT0502(-0x6)])];break;case 0x8e:return KobvOg[Cq8zsn(0x46)+Cq8zsn[QsPb5z(yqhrOb[_L1WKot(-0xc)]-0x12)](IT0502(-0x3d),yqhrOb[IT0502(-0x26)]-_L1WKot(0xd))+'\u006c']||Aw7vJ7[Cq8zsn(IT0502(0x10))];case 0xe00:return KobvOg[Cq8zsn(_L1WKot(0xb))+Cq8zsn[QsPb5z(IT0502(-0x43))](_L1WKot(-0x23),[yqhrOb[_L1WKot(-0xc)]-_L1WKot(-0x3)])]||Aw7vJ7[Cq8zsn(0x49)+Cq8zsn(_L1WKot(0x9))];case hefueL.Vb6wKHr>-_L1WKot(0x4)?0xd0f:-_L1WKot(0xd):return KobvOg[Cq8zsn(0x46)+Cq8zsn(_L1WKot(0x15))+'\u0074\u0065']||Aw7vJ7[Cq8zsn(_L1WKot(0x16))+Cq8zsn(0x4b)+'\u0074\u0065'];case hefueL.uYU_1rA()?0x617:0xcc:yqhrOb[yqhrOb[_L1WKot(-0xc)]+_L1WKot(-0x17)]=Cq8zsn[QsPb5z(_L1WKot(-0x29))](IT0502(-0x3d),[0x4c])+Cq8zsn(IT0502(-0x2))+'\u0073\u006b'||Aw7vJ7[Cq8zsn(IT0502(-0x3))+Cq8zsn(IT0502(-0x2))+'\x73\x6b'];break;case 0xf3a:yqhrOb[yqhrOb.fa4loox+0xe]=cA5yKj[QsPb5z(IT0502(-0x1))]||Aw7vJ7[Cq8zsn(yqhrOb[IT0502(-0x26)]-_L1WKot(0x1a))];break;case 0x8a5:yqhrOb[IT0502(-0x24)]=Cq8zsn(_L1WKot(0x1b))+'\x74\x65'||Aw7vJ7[Cq8zsn(IT0502(0x1))+'\x74\x65'];break;case 0x5c5:return KobvOg[oWobUC[IT0502(0x2)]]||Aw7vJ7[Cq8zsn[QsPb5z(_L1WKot(0x2))](void 0x0,IT0502(-0x41))];case hefueL.Vb6wKHr>-0x5a?0xabe:-0xd9:yqhrOb[IT0502(-0x24)]=oWobUC[IT0502(0x3)]||Aw7vJ7[Cq8zsn(_L1WKot(0x1e))];break;case!(hefueL.Zv1i1e>-(yqhrOb[IT0502(-0x26)]-_L1WKot(0x1e)))?-0xe9:0x930:yqhrOb[_L1WKot(-0xa)]=Cq8zsn[QsPb5z(_L1WKot(-0x29))](_L1WKot(-0x23),[_L1WKot(0x1f)])||Aw7vJ7[Cq8zsn(yqhrOb[_L1WKot(-0xc)]-IT0502(-0x14))];break;case 0x789:return KobvOg[cA5yKj[QsPb5z(_L1WKot(0x20))]]||Aw7vJ7[Cq8zsn(yqhrOb.fa4loox-IT0502(-0x33))];case 0x3d9:yqhrOb[_L1WKot(-0xa)]=Cq8zsn(IT0502(0x7))||Aw7vJ7[Cq8zsn(_L1WKot(0x21))]}return yqhrOb.fa4loox>0xee?yqhrOb[yqhrOb.fa4loox+_L1WKot(0x22)]:KobvOg[yqhrOb[0x8e]]||Aw7vJ7[yqhrOb[0x8e]]}bZr1YLO(L4q78kG,IT0502(-0x4d));function L4q78kG(...yqhrOb){var _L1WKot;function kh0_IW_(yqhrOb){return HBcybXc[yqhrOb>0x3f?yqhrOb+0x36:yqhrOb<-0x32?yqhrOb-0x12:yqhrOb<0x3f?yqhrOb+0x31:yqhrOb-0xf]}!(yqhrOb[IT0502(-0x59)]=0x1,yqhrOb[kh0_IW_(0x37)]=-kh0_IW_(0x34),yqhrOb[yqhrOb[0xa7]+IT0502(0xa)]='\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x21\x23\x24\x25\x26\x28\x29\x2a\x2b\x2c\x2e\x2f\x3a\x3b\x3c\x3d\x3e\x3f\x40\x5b\x5d\x5e\x5f\x60\x7b\x7c\x7d\x7e\x22',yqhrOb[yqhrOb[0xa7]+kh0_IW_(0x36)]=''+(yqhrOb[kh0_IW_(-0x2f)]||''),yqhrOb[yqhrOb[yqhrOb[IT0502(0xc)]+0x111]-(yqhrOb[kh0_IW_(0x37)]-IT0502(0xc))]=yqhrOb[0xa7]+0xba,yqhrOb[kh0_IW_(-0x28)]=yqhrOb[kh0_IW_(-0x30)].length,yqhrOb[0x4]=[],yqhrOb[kh0_IW_(0x3a)]=yqhrOb[0xa7]-kh0_IW_(-0x16),yqhrOb[kh0_IW_(0x2d)]=IT0502(-0x5a),yqhrOb[kh0_IW_(0x39)]=-IT0502(-0x4d));for(_L1WKot=0x0;_L1WKot{return HBcybXc[yqhrOb<0x14?yqhrOb-0x33:yqhrOb>0x14?yqhrOb-0x15:yqhrOb-0x5f]},0x1);yqhrOb[kh0_IW_(0x38)]=yqhrOb[wgF0GDv(0x24)].indexOf(yqhrOb[0x2][_L1WKot]);if(yqhrOb[IT0502(0xd)]===-(yqhrOb[kh0_IW_(0x37)]-wgF0GDv(0x72))){continue}if(yqhrOb[wgF0GDv(0x7f)]{return HBcybXc[yqhrOb<0x8e?yqhrOb>0x1d?yqhrOb<0x1d?yqhrOb+0x3e:yqhrOb-0x1e:yqhrOb+0x2c:yqhrOb-0x5e]},0x1);typeof(yqhrOb[IT0502(0xe)]+=yqhrOb[kh0_IW_(0x38)]*WnOWnve(0x6f),yqhrOb.W6ahKJU|=yqhrOb[IT0502(0xe)]<0x58?WnOWnve(0x41):kh0_IW_(-0x6));do{var UUPkOZJ=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0xc1?yqhrOb<0xc1?yqhrOb-0x51:yqhrOb-0x23:yqhrOb-0x51]},0x1);void(yqhrOb[0x4].push(yqhrOb[UUPkOZJ(0xbc)]&IT0502(0x11)),yqhrOb[wgF0GDv(0x80)]>>=yqhrOb[UUPkOZJ(0xb9)]-wgF0GDv(0x81),yqhrOb[yqhrOb[0xa7]-(yqhrOb[kh0_IW_(0x37)]-kh0_IW_(0x2d))]-=0x8)}while(yqhrOb[yqhrOb[WnOWnve(0x86)]-kh0_IW_(0x1a)]>IT0502(0x3));yqhrOb[wgF0GDv(0x7f)]=-kh0_IW_(-0x22)}}if(yqhrOb.VSbiRxj>-kh0_IW_(-0x22)){yqhrOb[0x4].push((yqhrOb[kh0_IW_(0x3a)]|yqhrOb[kh0_IW_(0x39)]<0xb6){return yqhrOb[IT0502(-0x3b)]}else{var htjUmQF=BQwxho(yqhrOb=>{return HBcybXc[yqhrOb<0x5f?yqhrOb+0x44:yqhrOb<0x5f?yqhrOb-0x3a:yqhrOb>0x5f?yqhrOb<0x5f?yqhrOb-0x54:yqhrOb>0xd0?yqhrOb-0x2f:yqhrOb<0x5f?yqhrOb-0x3b:yqhrOb>0x5f?yqhrOb>0x5f?yqhrOb-0x60:yqhrOb-0x45:yqhrOb-0x14:yqhrOb+0x1f]},0x1);return tyL_eK(yqhrOb[htjUmQF(0x67)])}}function Cq8zsn(HBcybXc,yqhrOb,_L1WKot,kh0_IW_=L4q78kG,wgF0GDv=PxWxgB){if(_L1WKot){return yqhrOb[PxWxgB[_L1WKot]]=Cq8zsn(HBcybXc,yqhrOb)}else{if(yqhrOb){[wgF0GDv,yqhrOb]=[kh0_IW_(wgF0GDv),HBcybXc||_L1WKot]}}return yqhrOb?HBcybXc[wgF0GDv[yqhrOb]]:PxWxgB[HBcybXc]||(_L1WKot=(wgF0GDv[HBcybXc],kh0_IW_),PxWxgB[HBcybXc]=_L1WKot(SoZofCM[HBcybXc]))}function ViBb39(){return'\x47\x3a\x58\x45\x69\x40\x66\x64\x6a\x35\x42\x3b\x51\x38\x5f\x6f\x29\x77\x60\x63\x54\x7c\x78\x72\x6c\x33\x54\x37\x4d\x24\x68\x50\x7b\x79\x23\x2b\x68\x6b\x3e\x21\x6a\x3a\x3e\x3c\x41\x7c\x70\x6f\x66\x2f\x74\x29\x3f\x7a\x66\x38\x7a\x26\x70\x45ĕ\x66\x58\x30\x79\x5d\x23\x6a\x67\x53\x32\x63\x34\x50\x71\x5a\x59\x25\x5e\x64\x54\x5e\x60\x52\x46\x7c\x23\x69\x5a\x62\x71\x3b\x74\x4e\x39\x21\x29\x63\x60\x6b\x48\x54\x73\x35\x36\x64\x68\x6f\x47\x7b\x76\x23\x6e\x3f\x6b\x37\x24\x59\x78\x44\x7d\x4a\x4b\x5b\x71\x6fĻ\x72\x61\x64\x33\x75\x39\x24\x47\x6b\x54\x3b\x6a\x69\x4e\x67\x6b\x42\x23\x50\x4a\x7c\x7a\x25\x4f\x33\x3b\x77\x3f\x64\x44\x7c\x21\x69\x43\x62\x4d\x28\x6dţ\x7c\x65\x29\x51\x68\x5d\x74\x7b\x4d\x47\x7c\x58\x50\x55\x3d\x3e\x5b\x61\x43\x7c\x4a\x78Ċ\x47\x3f\x24\x65\x48\x7c\x64\x50\x28\x67\x74\x40\x6dƸ\x34\x34\x21\x66\x50\x5bĬ\x5d\x44\x77\x4a\x62\x7c\x53\x38Ƴ\x3d\x5b\x24\x7b\x6c\x54\x54\x48\x77\x62\x52\x6e\x2a\x58\x34\x44\x32\x7b\x32\x21\x6c\x24\x39\x2f\x4e\x2e\x39\x6a\x2e\x49\x2e\x4a\x63\x2c\x45\x43\x41\x57\x7c\x32ľ\x31\x43\x75\x79Ƹ\x67\x3c\x59\x4a\x67\x2c\x2e\x7b\x29\x54\x62\x36\x35\x38\x63\x51\x74\x32\x30\x3d\x59ŕ\x44\x58\x3c\x64\x2cȇ\x7c\x4e\x6fȠ\x35\x2b\x55Ƹ\x6b\x7aț\x72\x40ĬȂ\x30\x31\x6e\x76\x7b\x59\x3c\x21\x74\x2f\x42\x7c\x5b\x69\x2f\x32\x73\x29Ɵ\x7c\x2f\x37\x42ņ\x2c\x75Ƹǃ\x72\x67\x50\x3a\x36\x65ƯĴ\x63\x3d\x62\x2cǟǁ\x35\x29\x6b\x3dȰ\x6eǡȁȃȶ\x6fƸ\x50\x50\x29\x46\x64\x7c\x6b\x72\x65\x66\x5a\x3cȫư\x7d\x64\x66\x71LjƸ\x36\x6c\x5e\x49ɷ\x74\x66\x57ɵƸ\x43\x45\x4c\x67\x5aʂʄ\x3c\x22\x40\x4d\x21\x36\x30Ⱦ\x6e\x58\x2c\x3c\x63ȿɁɃ\x29\x40\x59\x67\x23\x63\x2eȾ\x61\x72Ƴ\x69\x3e\x75ɕ\x7c\x45\x45ț\x66\x2c\x33Ⱦʯʱ\x2cĄ\x71\x55ʮʰ\x3dʲƻ\x7c\x6a\x72\x7a\x49ɮ\x38\x44\x56\x4b\x61\x7c\x59\x32\x7e\x7aĔ\x76\x7a\x62\x67\x4e\x3a\x38ʭ\x51\x35\x7a\x67\x37ȜƸ\x5f\x71ǹ\x65\x2c\x5d\x40Ư\x3d\x37ǚ\x5b\x63Ƹ\x74\x47\x3e\x66\x5d\x2aȤ\x67\x7a˜\x68\x60Ĭ˒ǹ\x6e˺ư\x2cŃ\x2f\x77\x2a\x4e\x32\x54\x35\x7c\x7d\x4f\x75\x66\x70\x40ɶ\x37\x4a\x6d\x66\x68\x40ɍ\x7c\x25\x44Ƴǻ\x2b\x4d\x4d\x25\x60\x2bȾ̜̚\x2c\x76Ⱦ\x5b\x7aɂʛ\x37\x21˄Ƙ̮̰̅̇̉\x77̘\x70\x72\x46\x4bƦ\x50ˉ\x48\x3a\x77\x65\x32\x24\x2cȽ̽̿\x3a\x6bƸ\x63\x72\x64\x4bɮ\x3d\x69̔\x6f\x40\x73\x30\x57\x24\x38\x26\x50\x79\x4f\x7c͔͒\x40\x3dȾ\x26\x6c\x6e\x3c\x31\x5dȤ\x65DŽ˶\x3dȤ\x29\x7a\x5e\x67\x55ī͓͠\x66͕ʴ\x7c\x72\x35\x5f\x31\x62\x5e\x4dƸ͡ͺ\x40Ą\x72\x25\x40\x2b\x70\x51\x4b\x6d̽DžĪ͋\x7c\x68\x4d\x2b\x66Ǜɶ\x2bɿ\x49\x4c\x3a΄ǂ\x38̔ȍ\x23Ⱦ\x32\x4aț\x40\x5b΢\x33\x32\x6b\x64\x4c\x33Ĭίʣ˞˭\x7c\x7e\x4fˉ\x7cˇ\x40ƒ\x43\x50\x48\x3c\x38\x36\x26\x59ǁςτ\x6f\x32΄ǁ\x57\x2c\x35\x32\x65\x3eɆɱ\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7c\x54\x65\x78\x74\x44\x65\x63\x6f\x64\x65\x72\x7c\x55\x69\x6e\x74\x38\x41\x72ſ\x79\x7c\x42̍\x66ϬǗ\x74\x72ϰ\x67\x7cϴ϶\x7c\x66\x72\x6fljϪͭ\x6fϰ\x74ЅЇlj\x68ʧ\x43Њ\x7c\x6c\x65\x6edž\x68ĭ\x75\x73Л\x6aЌ\x6e\x7c\x75\x6eϫ\x66ϰ\x65ɮϫϩϫЏЈ\x7c\x74\x6f\x53ϾЀУʃ\x2d\x38\x7c\x61\x70\x70\x6cϷ\x65\x77\x52\x63\x74\x6d\x30ˁ\x37\x48\x6e\x50͟\x41З\x5a\x37\x31\x39ˁ\x58\x31ʡ\x47\x52Ǘ\x66\x54\x76\x34ǁ\x63Ʋ\x4b\x4e\x4e\x50\x7c\x63\x45\x79\x4b\x6fЎ\x4b\x45\x76\x6d\x77ѭЖ\x62\x4e\x77\x36\x53\x7c\x67\x62\x5fлĬ\x55\x59\x47\x51\x31ј\x63\x61\x6c\x6c'}bZr1YLO(QsPb5z,0x1);function QsPb5z(...HBcybXc){typeof(HBcybXc.length=0x1,HBcybXc[IT0502(0x13)]=IT0502(0x12));return HBcybXc[IT0502(0x13)]>0xa0?HBcybXc[0xe6]:yqhrOb[HBcybXc[HBcybXc[IT0502(0x13)]-0x40]]}function PuWdciV(HBcybXc){var yqhrOb,_L1WKot,kh0_IW_,wgF0GDv={},WnOWnve=HBcybXc.split(''),UUPkOZJ=_L1WKot=WnOWnve[0x0],htjUmQF=[UUPkOZJ],Un4YuIT=yqhrOb=0x100;for(HBcybXc=0x1;HBcybXckh0_IW_?WnOWnve[HBcybXc]:wgF0GDv[kh0_IW_]?wgF0GDv[kh0_IW_]:_L1WKot+UUPkOZJ,htjUmQF.push(kh0_IW_),UUPkOZJ=kh0_IW_.charAt(IT0502(-0x5a)),wgF0GDv[yqhrOb]=_L1WKot+UUPkOZJ,yqhrOb++,_L1WKot=kh0_IW_;return htjUmQF.join('').split('\u007c')}function KtdmX9(){return[0xca,0x2,0x0,'\u006c\u0065\u006e\u0067\u0074\u0068','\x51\x5f\x6d\x36\x38\x36',0x10,0x13,0x4,0x1a,0x3,0x1e,0x26,0x28,'\x4c\x6d\x69\x34\x67\x69\x36',0x59,0x1,'\x48\x37\x4d\x42\x71\x51\x6d',0x1f,0x3f,0xf,0x58,0x12,0x25,0x3c,0x30,0x62,0x33,0x50,0x19,0x14,0xc,void 0x0,0x2f,0x4e,0x53,0xd,'\x61\x6b\x35\x42\x35\x63\x47',0x57,0x1c,0x63,0x55,0x2d,'\x77\x34\x42\x58\x57\x73',0xe,0x66,0x11,0x5,'\u0079',0x223,0x15,0x1d,0x20,0x2c,0x16,'\x66\x61\x34\x6c\x6f\x6f\x78',0x80,0x8e,0x17,0x18,'\x4e\x67\x37\x6e\x58\x63\x54',0x1b,'\u0066\u0075\u006b\u0059\u0042\u0077\u0037','\u0042\u0042\u006e\u0042\u0063\u0046\u0069',0x36,0x65,0x21,0x22,0x5c,0x6e,0x27,0x5a,0x7f,0x2e,'\x77','\x6f\x6e',0x4a,0x37,0x49,'\u006f\u0072',0x39,0x3a,0x5b,0x3d,0x3e,'\x51',0x3b,0x45,0x4b,0x46,0x4c,0x4d,0x68,0x32,0x4f,0x6,0x7,0x51,0x52,0x69,0x54,0x5e,0x6a,0x6b,0x6c,0xa7,'\x6d\x48\x67\x45\x70\x69','\x56\x53\x62\x69\x52\x78\x6a','\x57\x36\x61\x68\x4b\x4a\x55',0x48,0xff,0x40,'\x4b\x4c\x54\x58\x37\x4a']}function BQwxho(HBcybXc,yqhrOb){var _L1WKot=function(){return HBcybXc(...arguments)};Object['\u0064\u0065\u0066\u0069\u006e\u0065\u0050\u0072\u006f\u0070\u0065\u0072\u0074\u0079'](_L1WKot,'\x6c\x65\x6e\x67\x74\x68',{'\u0076\u0061\u006c\u0075\u0065':yqhrOb,'\u0063\u006f\u006e\u0066\u0069\u0067\u0075\u0072\u0061\u0062\u006c\u0065':true});return _L1WKot}var kcVGHQ, fUlLf40, tYu7vnS, vWyTTp; const YCubrm0 = [0x0, null, 0x20, 0x2, 0x1, 0x100, 0x6, 0x3, 0x8, 0x10, 0x4, "\u0075\u006e\u0064\u0065\u0066\u0069\u006e\u0065\u0064", "\u004c\u005a\u0053\u0074\u0072\u0069\u006e\u0067", 0xb, 0xc, 0xa, 0xf, !0x1, !0x0, void 0x0, "\x3d", "\x20", 0x1e, 0x23, 0x24, "\u002d\u0076", 0x25, 0x26, 0x5, 0x64, 0x2c, 0x32, 0x33]; j9g8B8(kcVGHQ = function () { var fUlLf40 = String.fromCharCode, tYu7vnS = "\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u002b\u002f\u003d", vWyTTp = "\u0041\u0042\u0043\u0044\u0045\u0046\u0047\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057\u0058\u0059\u005a\u0061\u0062\u0063\u0064\u0065\u0066\u0067\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077\u0078\u0079\u007a\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u002b\u002d\u0024", bGKH6O = {}, DpCQip5; function gBicQpi(DpCQip5, gBicQpi) { if (!bGKH6O[DpCQip5]) { var Zu2aGKt; bGKH6O[DpCQip5] = {}; for (Zu2aGKt = YCubrm0[0x0]; Zu2aGKt < DpCQip5.length; Zu2aGKt++)bGKH6O[DpCQip5][DpCQip5.charAt(Zu2aGKt)] = Zu2aGKt } return bGKH6O[DpCQip5][gBicQpi] } DpCQip5 = { compressToBase64: function (vWyTTp) { var bGKH6O, gBicQpi; function* Zu2aGKt(gBicQpi, Zu2aGKt, BhOUN3j = { a6DVtp: {} }) { while (gBicQpi + Zu2aGKt !== -0x79) with (BhOUN3j.qJHgVlK || BhOUN3j) switch (gBicQpi + Zu2aGKt) { case -0xee: case 0x28: case 0xb5: case gBicQpi != -0x10d && gBicQpi - -0x93: [BhOUN3j.a6DVtp.fI2UJN1, BhOUN3j.a6DVtp.XjP4uW] = [-0xcc, -0x52]; if (YCubrm0[gBicQpi + 0x81] == vWyTTp) return bGKH6O = !0x0, ""; j9g8B8(a6DVtp.yW8ZO3 = DpCQip5._compress(vWyTTp, YCubrm0[gBicQpi + 0x86], function (gBicQpi) { return tYu7vnS.charAt(gBicQpi) }), BhOUN3j.qJHgVlK = BhOUN3j.a6DVtp, gBicQpi += 0x102, Zu2aGKt += -0x111); break; case Zu2aGKt != 0x1f && Zu2aGKt != 0x34 && Zu2aGKt - 0x10d: [BhOUN3j.a6DVtp.fI2UJN1, BhOUN3j.a6DVtp.XjP4uW] = [0x10, 0xb5]; case gBicQpi != -0xd2 && gBicQpi - -0x34: case 0xdc: j9g8B8(BhOUN3j.qJHgVlK = BhOUN3j.a6DVtp, gBicQpi += 0x18f, Zu2aGKt += -0xb2); break; case 0x2b: case BhOUN3j.a6DVtp.fI2UJN1 + 0xd0: switch (yW8ZO3.length % YCubrm0[gBicQpi + -0x78]) { default: case YCubrm0[gBicQpi + -0x82]: return bGKH6O = !0x0, yW8ZO3; case YCubrm0[0x4]: return bGKH6O = !0x0, yW8ZO3 + "\u003d\u003d\u003d"; case YCubrm0[0x3]: return bGKH6O = !0x0, yW8ZO3 + "\x3d\x3d"; case YCubrm0[0x7]: return bGKH6O = !0x0, yW8ZO3 + YCubrm0[0x14] }j9g8B8(BhOUN3j.qJHgVlK = BhOUN3j.Me9YHJL, gBicQpi += -0x154, Zu2aGKt += 0xd7); break; default: case 0x65: case Zu2aGKt != 0x59 && Zu2aGKt - 0xd2: j9g8B8(BhOUN3j.qJHgVlK = BhOUN3j.a6DVtp, gBicQpi += 0x154, Zu2aGKt += -0xb2); break } } j9g8B8(bGKH6O = void 0x0, gBicQpi = Zu2aGKt(-0x80, 0x93).next().value); if (bGKH6O) { return gBicQpi } }, decompressFromBase64: function (bGKH6O) { return YCubrm0[0x1] == bGKH6O ? "" : "" == bGKH6O ? YCubrm0[0x1] : DpCQip5._decompress(bGKH6O.length, YCubrm0[0x2], function (DpCQip5) { return gBicQpi(tYu7vnS, bGKH6O.charAt(DpCQip5)) }) }, compressToUTF16: function (vWyTTp) { return YCubrm0[0x1] == vWyTTp ? "" : DpCQip5._compress(vWyTTp, YCubrm0[0x10], function (bGKH6O) { return fUlLf40(bGKH6O + YCubrm0[0x2]) }) + YCubrm0[0x15] }, decompressFromUTF16: function (vWyTTp) { return YCubrm0[0x1] == vWyTTp ? "" : "" == vWyTTp ? YCubrm0[0x1] : DpCQip5._decompress(vWyTTp.length, 0x4000, function (bGKH6O) { return vWyTTp.charCodeAt(bGKH6O) - YCubrm0[0x2] }) }, compressToUint8Array: function (Zu2aGKt) { for (var P6orQXS = DpCQip5.compress(Zu2aGKt), MmdOFo1 = new Uint8Array(YCubrm0[0x3] * P6orQXS.length), NNq1ZRW = YCubrm0[0x0], hQS4fN = P6orQXS.length; NNq1ZRW < hQS4fN; NNq1ZRW++) { var nVUpv7 = P6orQXS.charCodeAt(NNq1ZRW); j9g8B8(MmdOFo1[YCubrm0[0x3] * NNq1ZRW] = nVUpv7 >>> YCubrm0[0x8], MmdOFo1[YCubrm0[0x3] * NNq1ZRW + YCubrm0[0x4]] = nVUpv7 % YCubrm0[0x5]) } return MmdOFo1 }, decompressFromUint8Array: function (Zu2aGKt) { var j9g8B8; if (YCubrm0[0x1] == Zu2aGKt) return DpCQip5.decompress(Zu2aGKt); for (var qKuxH6_ = new Array(Zu2aGKt.length / YCubrm0[0x3]), WGpMldp = YCubrm0[0x0], G2pEig = qKuxH6_.length; WGpMldp < G2pEig; WGpMldp++)qKuxH6_[WGpMldp] = YCubrm0[0x5] * Zu2aGKt[YCubrm0[0x3] * WGpMldp] + Zu2aGKt[YCubrm0[0x3] * WGpMldp + YCubrm0[0x4]]; j9g8B8 = []; return qKuxH6_.forEach(function (qKuxH6_) { j9g8B8.push(fUlLf40(qKuxH6_)) }), DpCQip5.decompress(j9g8B8.join("")) }, compressToEncodedURIComponent: function (tYu7vnS) { return YCubrm0[0x1] == tYu7vnS ? "" : DpCQip5._compress(tYu7vnS, YCubrm0[0x6], function (bGKH6O) { return vWyTTp.charAt(bGKH6O) }) }, decompressFromEncodedURIComponent: function (bGKH6O) { return YCubrm0[0x1] == bGKH6O ? "" : "" == bGKH6O ? YCubrm0[0x1] : (bGKH6O = bGKH6O.replace(/ /g, "\u002b"), DpCQip5._decompress(bGKH6O.length, YCubrm0[0x2], function (DpCQip5) { return gBicQpi(vWyTTp, bGKH6O.charAt(DpCQip5)) })) }, compress: function (vWyTTp) { return DpCQip5._compress(vWyTTp, YCubrm0[0x9], function (bGKH6O) { return fUlLf40(bGKH6O) }) }, _compress: function (Zu2aGKt, TQgeGi, _hkt6pJ) { if (YCubrm0[0x1] == Zu2aGKt) return ""; var zFucHa, hQgF2x, g_1ilU, HCFv51 = {}, AGhn5m = {}, Nih6PQ = "", sX0TqIk = "", C3gOelm = "", B7LPcf0 = YCubrm0[0x3], YCOwJv9 = YCubrm0[0x7], wmH8q5 = YCubrm0[0x3], lWhe7F8 = [], gr6P8qd = YCubrm0[0x0], JOu0xoJ = YCubrm0[0x0]; for (g_1ilU = YCubrm0[0x0]; g_1ilU < Zu2aGKt.length; g_1ilU += YCubrm0[0x4])if (Nih6PQ = Zu2aGKt.charAt(g_1ilU), Object.prototype.hasOwnProperty.call(HCFv51, Nih6PQ) || (HCFv51[Nih6PQ] = YCOwJv9++, AGhn5m[Nih6PQ] = !YCubrm0[0x0]), sX0TqIk = C3gOelm + Nih6PQ, Object.prototype.hasOwnProperty.call(HCFv51, sX0TqIk)) C3gOelm = sX0TqIk; else { if (Object.prototype.hasOwnProperty.call(AGhn5m, C3gOelm)) { if (C3gOelm.charCodeAt(YCubrm0[0x0]) < YCubrm0[0x5]) { for (zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd <<= YCubrm0[0x4], JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++; for (hQgF2x = C3gOelm.charCodeAt(YCubrm0[0x0]), zFucHa = YCubrm0[0x0]; zFucHa < YCubrm0[0x8]; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4] } else { for (hQgF2x = YCubrm0[0x4], zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x = YCubrm0[0x0]; for (hQgF2x = C3gOelm.charCodeAt(YCubrm0[0x0]), zFucHa = YCubrm0[0x0]; zFucHa < YCubrm0[0x9]; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4] } j9g8B8(YCubrm0[0x0] == --B7LPcf0 && (B7LPcf0 = Math.pow(YCubrm0[0x3], wmH8q5), wmH8q5++), delete AGhn5m[C3gOelm]) } else for (hQgF2x = HCFv51[C3gOelm], zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4]; j9g8B8(YCubrm0[0x0] == --B7LPcf0 && (B7LPcf0 = Math.pow(YCubrm0[0x3], wmH8q5), wmH8q5++), HCFv51[sX0TqIk] = YCOwJv9++, C3gOelm = String(Nih6PQ)) } if ("" !== C3gOelm) { if (Object.prototype.hasOwnProperty.call(AGhn5m, C3gOelm)) { if (C3gOelm.charCodeAt(YCubrm0[0x0]) < YCubrm0[0x5]) { for (zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd <<= YCubrm0[0x4], JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++; for (hQgF2x = C3gOelm.charCodeAt(YCubrm0[0x0]), zFucHa = YCubrm0[0x0]; zFucHa < YCubrm0[0x8]; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4] } else { for (hQgF2x = YCubrm0[0x4], zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x = YCubrm0[0x0]; for (hQgF2x = C3gOelm.charCodeAt(YCubrm0[0x0]), zFucHa = YCubrm0[0x0]; zFucHa < YCubrm0[0x9]; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4] } j9g8B8(YCubrm0[0x0] == --B7LPcf0 && (B7LPcf0 = Math.pow(YCubrm0[0x3], wmH8q5), wmH8q5++), delete AGhn5m[C3gOelm]) } else for (hQgF2x = HCFv51[C3gOelm], zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4]; YCubrm0[0x0] == --B7LPcf0 && (B7LPcf0 = Math.pow(YCubrm0[0x3], wmH8q5), wmH8q5++) } for (hQgF2x = YCubrm0[0x3], zFucHa = YCubrm0[0x0]; zFucHa < wmH8q5; zFucHa++)gr6P8qd = gr6P8qd << YCubrm0[0x4] | YCubrm0[0x4] & hQgF2x, JOu0xoJ == TQgeGi - YCubrm0[0x4] ? (JOu0xoJ = YCubrm0[0x0], lWhe7F8.push(_hkt6pJ(gr6P8qd)), gr6P8qd = YCubrm0[0x0]) : JOu0xoJ++, hQgF2x >>= YCubrm0[0x4]; for (; ;) { if (gr6P8qd <<= YCubrm0[0x4], JOu0xoJ == TQgeGi - YCubrm0[0x4]) { lWhe7F8.push(_hkt6pJ(gr6P8qd)); break } JOu0xoJ++ } return lWhe7F8.join("") }, decompress: function (vWyTTp) { return YCubrm0[0x1] == vWyTTp ? "" : "" == vWyTTp ? YCubrm0[0x1] : DpCQip5._decompress(vWyTTp.length, 0x8000, function (bGKH6O) { return vWyTTp.charCodeAt(bGKH6O) }) }, _decompress: function (Zu2aGKt, HhDRZC, dqFgOZ) { var LURUZvC, MUIFfK, XLpwt9, YOfXDay, oFrzMs, N_h2Bm6, bs3MXD2, ol6v79F = [], AiQi0f = YCubrm0[0xa], dVx4ba = YCubrm0[0xa], uH6jdG = YCubrm0[0x7], W38vzut = "", M7CTkfA = [], hMWDmBS = { val: dqFgOZ(YCubrm0[0x0]), position: HhDRZC, index: YCubrm0[0x4] }; for (LURUZvC = YCubrm0[0x0]; LURUZvC < YCubrm0[0x7]; LURUZvC += YCubrm0[0x4])ol6v79F[LURUZvC] = LURUZvC; for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], YCubrm0[0x3]), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; switch (XLpwt9) { case YCubrm0[0x0]: for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], YCubrm0[0x8]), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; bs3MXD2 = fUlLf40(XLpwt9); break; case YCubrm0[0x4]: for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], YCubrm0[0x9]), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; bs3MXD2 = fUlLf40(XLpwt9); break; case YCubrm0[0x3]: return "" }for (ol6v79F[YCubrm0[0x7]] = bs3MXD2, MUIFfK = bs3MXD2, M7CTkfA.push(bs3MXD2); ;) { if (hMWDmBS.index > Zu2aGKt) return ""; for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], uH6jdG), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; switch (bs3MXD2 = XLpwt9) { case YCubrm0[0x0]: for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], YCubrm0[0x8]), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; j9g8B8(ol6v79F[dVx4ba++] = fUlLf40(XLpwt9), bs3MXD2 = dVx4ba - YCubrm0[0x4], AiQi0f--); break; case YCubrm0[0x4]: for (XLpwt9 = YCubrm0[0x0], oFrzMs = Math.pow(YCubrm0[0x3], YCubrm0[0x9]), N_h2Bm6 = YCubrm0[0x4]; N_h2Bm6 != oFrzMs;)YOfXDay = hMWDmBS.val & hMWDmBS.position, hMWDmBS.position >>= YCubrm0[0x4], YCubrm0[0x0] == hMWDmBS.position && (hMWDmBS.position = HhDRZC, hMWDmBS.val = dqFgOZ(hMWDmBS.index++)), XLpwt9 |= (YOfXDay > YCubrm0[0x0] ? YCubrm0[0x4] : YCubrm0[0x0]) * N_h2Bm6, N_h2Bm6 <<= YCubrm0[0x4]; j9g8B8(ol6v79F[dVx4ba++] = fUlLf40(XLpwt9), bs3MXD2 = dVx4ba - YCubrm0[0x4], AiQi0f--); break; case YCubrm0[0x3]: return M7CTkfA.join("") }if (YCubrm0[0x0] == AiQi0f && (AiQi0f = Math.pow(YCubrm0[0x3], uH6jdG), uH6jdG++), ol6v79F[bs3MXD2]) W38vzut = ol6v79F[bs3MXD2]; else { if (bs3MXD2 !== dVx4ba) return YCubrm0[0x1]; W38vzut = MUIFfK + MUIFfK.charAt(YCubrm0[0x0]) } j9g8B8(M7CTkfA.push(W38vzut), ol6v79F[dVx4ba++] = MUIFfK + W38vzut.charAt(YCubrm0[0x0]), MUIFfK = W38vzut, YCubrm0[0x0] == --AiQi0f && (AiQi0f = Math.pow(YCubrm0[0x3], uH6jdG), uH6jdG++)) } } }; return DpCQip5 }(), "\u0066\u0075\u006e\u0063\u0074\u0069\u006f\u006e" == typeof define && define.amd ? define(function () { return kcVGHQ }) : YCubrm0[0xb] != typeof module && YCubrm0[0x1] != module ? module.exports = kcVGHQ : YCubrm0[0xb] != typeof angular && YCubrm0[0x1] != angular && angular.module(YCubrm0[0xc], []).factory(YCubrm0[0xc], function () { return kcVGHQ }), fUlLf40 = void 0x0, function () { var tYu7vnS, vWyTTp; function* YCubrm0(vWyTTp, YCubrm0, bGKH6O, DpCQip5, gBicQpi = { XVnwFxa: {} }) { while (vWyTTp + YCubrm0 + bGKH6O + DpCQip5 !== 0x9) with (gBicQpi.pBudZq || gBicQpi) switch (vWyTTp + YCubrm0 + bGKH6O + DpCQip5) { case YCubrm0 - 0x222: case 0xa5: case -0x87: [gBicQpi.XVnwFxa.nNnlaBY, gBicQpi.XVnwFxa.Vzkc5q] = [-0xd2, -0xf6]; case 0xc4: case 0x4a: j9g8B8([gBicQpi.XVnwFxa.nNnlaBY, gBicQpi.XVnwFxa.Vzkc5q] = [0x4c, 0xaa], gBicQpi.pBudZq = gBicQpi.hzswLt, vWyTTp += 0x16e, YCubrm0 += 0x76, bGKH6O += -0x1d, DpCQip5 += -0x16f); break; default: case -0x75: gBicQpi.XVnwFxa.eqfLe7 = hOjoTjK.split("\x7c"); return tYu7vnS = !0x0, fUlLf40 = function (vWyTTp) { return eqfLe7[vWyTTp] }; case vWyTTp - -0x17f: j9g8B8(gBicQpi.pBudZq = gBicQpi.L7Ig92, vWyTTp += 0x14d, YCubrm0 += -0x131, bGKH6O += -0xdf); break; case -0xeb: case YCubrm0 - -0xc2: j9g8B8([gBicQpi.XVnwFxa.nNnlaBY, gBicQpi.XVnwFxa.Vzkc5q] = [-0xbf, -0x52], XVnwFxa.EqztQX = "ᣡ᱉䄬̆Ȑ㊡ᰡᠮ⁦í㌡ᚸీ٠᷌Ƽ偬‹Ԡᰡ嬅ᙦ悰ᳪ\u0036堥学ЀπའŠවߎ့›䉀ຠૼ䁅ᘨ\u0075\u0041\u0061‘\u0076ⱬÎዠ冐ϸ䠠ሹġ\u0033慓⧠㞳咩ᨷ\u0026猢㬣涰愒✠⾥嫶愆⟁Ϲ⁒ἔ㡼සዺṨ䧓婙ᴓ䀥⌏ᾠ⡎昱઩䟦惀\u003a\u0045ĠϠˮ栤㯺〡ଝ㔲犙㔲濠ɓ¢氝ǡ⛨璌⅟…柰ɨƸÒ\u006dȴЯ᧢玔竏橗慻嚤䠷‭☐堢校⋳᥹搱⃢ᏽ㒊幍໶љ屁☰惑狨⇤䚪竐\u0021⢔ᡢ⾼๠熰堠סႩ䡥፩❳㓸ޠϘŀ\u0024♮とすᬠ‰䴢徢−怰妿搈Ѹ\u002f喷౤\u003e⒂ህ\u0024䀴ℂÎ帯ᛂʦɥᢽ༹䊸网嘬͒崠ᶸݶ惈㶩朣ჴహʓ棰༿潨䋘㑬䠢桃ケ劵䂼ॅĤ所䙃䘦栳㔐ા检⻛ῄ墅皝䲅榅䮢戦ℬ匤ତ↚\u002a䞮㬉䀠ᵩⴍᦸ㰬〠ᠠ⥸ᣥ簔偤࢈揱㩤ᘢ਍ఠㇾ⏀ɕ႟惱䜯ᘠƘ‚䐲嘥㩴ᔸ䘉章摚䱵⇮ཎລ∀堡ِ̞砨⍣\u0020᩠Œ恩∡罢溒穫ଣ≬ޱ䀼⺰爰ԣ眰䪺ⱘڈხঃ尥仡塤ṫภǯ樚∨ᕂナᗰ⏂⊙᤹⌖㽫␌㴾┸猻摈礼Π朽掘睏揨悸瑤糠抸確揨燬እⲳ搄椰Ꭾợብ㪷挴置䆔岰㈤罣却庶ፔ撺ㆬ喺㈴䂺ㅌ崶劌䬰጖ξ珌䚵獄廦狘䞰੄礸疜桿独撸瑢梾଴礽લ屴੬纼獄戦䫢䙸䄲䅳䬰ℏ䮂楸ᶪ敻㌒䕴獔奼㥬ᙹ琘幷奺掽䪺挸ᳺ牼㤒揍ኚ瀱嶼戡ᨦ磾テ燮䁴徺ᕬ⃠寰㝲嫨燦㌰୾⋒燫娶榣⊚皷宮⏈㯦䌅ᰚℌ媂棌І卿榠燥䫾廿榮⳽寺夸䃈石殡烵⎎偔ᬰ⦨ᷡ盼Ϩ廳狖䯻橸揼Кٝ拮愄㈬揱㐑媻稴楕ઞ篽䚩籘ᩩ愊㇔单✧⏈竺䧺⌾坞⟌潟✽ɓ枹棘ᘸ烛昙侾ᙙ棼筤滹䇨Т২ဠ\u0020", XVnwFxa.hOjoTjK = kcVGHQ.decompressFromUTF16(XVnwFxa.EqztQX), gBicQpi.pBudZq = gBicQpi.XVnwFxa, vWyTTp += -0x21, YCubrm0 += 0xb0, bGKH6O += -0x173, DpCQip5 += -0x33); break } } j9g8B8(tYu7vnS = void 0x0, vWyTTp = YCubrm0(0xbb, -0x20, 0xb2, -0xab).next().value); if (tYu7vnS) { return vWyTTp } }()); function bGKH6O() { } j9g8B8(tYu7vnS = Object[fUlLf40(YCubrm0[0x0])](YCubrm0[0x1]), vWyTTp = void 0x0); function DpCQip5(DpCQip5, ujJBXK, ftxK5aa, meobOds = { [fUlLf40(YCubrm0[0x4])]: YCubrm0[0x7] }, C6npvU, Da2_lof, VKRhEcG) { if (!C6npvU) { C6npvU = function* (VKRhEcG, SLitp27, w4P8hy0 = { fogSgOu: {} }, ov99gsw) { while (VKRhEcG + SLitp27 !== 0xeb) with (w4P8hy0.KJaJzZ || w4P8hy0) switch (VKRhEcG + SLitp27) { case SLitp27 - -0x43: j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.B49xfw0, VKRhEcG += -0x71, SLitp27 += 0xfc); break; case VKRhEcG - 0x16: j9g8B8(w4P8hy0.tfnJey = {}, w4P8hy0.tfnJey.ziPOVx = function (...VKRhEcG) { return C6npvU(0x16b, -0xac, { tfnJey: w4P8hy0.tfnJey, fogSgOu: w4P8hy0.fogSgOu, OYlhcs: {} }, VKRhEcG).next().value }); if (fUlLf40(0x2b) in bGKH6O) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.tfnJey, VKRhEcG += 0x270, SLitp27 += -0x93); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0x15b, SLitp27 += -0xc4); break } case w4P8hy0.fogSgOu.ue1TQL + -0x76: j9g8B8(gCSDSg = tSufQI[DpCQip5](), w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, SLitp27 += -0x7); break; case 0xb2: case -0x39: case -0x8: j9g8B8(w4P8hy0.fogSgOu.ue1TQL = 0x24, fogSgOu.gCSDSg = void 0x0, fogSgOu.tSufQI = { [fUlLf40(YCubrm0[VKRhEcG + -(VKRhEcG + -0x4)])]: function (VKRhEcG, SLitp27, w4P8hy0) { if (!VKRhEcG) { VKRhEcG = function* (w4P8hy0, ov99gsw, DpCQip5, ujJBXK, ftxK5aa = { AQaea12: {} }, meobOds) { while (w4P8hy0 + ov99gsw + DpCQip5 + ujJBXK !== -0xd4) with (ftxK5aa.Yt55SVu || ftxK5aa) switch (w4P8hy0 + ov99gsw + DpCQip5 + ujJBXK) { case 0xbc: case ujJBXK != 0x6c && ujJBXK - 0x80: j9g8B8(ZBVAX54.Qme4ief = function (w4P8hy0) { var ov99gsw, DpCQip5; function* ujJBXK(DpCQip5, ujJBXK, ftxK5aa = { LERSGYI: {} }) { while (DpCQip5 + ujJBXK !== 0x10) with (ftxK5aa.UTsahVi || ftxK5aa) switch (DpCQip5 + ujJBXK) { case -0x51: case -0x7a: case ujJBXK - -0x16: if (Mc6TozP === FJDyd5) return ov99gsw = !0x0, YCubrm0[0x0]; j9g8B8(ftxK5aa.LERSGYI.Tbm2o5x = Array(G3eYuf - YCubrm0[0x4]).fill(Number.MAX_SAFE_INTEGER), ftxK5aa.LERSGYI.pe703r = Array(G3eYuf - YCubrm0[0x4]).fill(Number.MIN_SAFE_INTEGER), ftxK5aa.LERSGYI.cgez87V = Math.ceil((Mc6TozP - FJDyd5) / (G3eYuf - YCubrm0[DpCQip5 + -0x12])), ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += 0x59, ujJBXK += -0x11f); break; case DpCQip5 != -0x62 && DpCQip5 != -0xf2 && DpCQip5 != -0xe7 && DpCQip5 - -0x29: j9g8B8(ftxK5aa.UTsahVi = ftxK5aa.MnYnNs, DpCQip5 += 0x1a0, ujJBXK += -0x1eb); break; case -0xbe: j9g8B8(ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += 0x1ad, ujJBXK += -0x116); break; case -0xa3: j9g8B8([ftxK5aa.LERSGYI.m5wYbfe, ftxK5aa.LERSGYI.VdcdcV, ftxK5aa.LERSGYI.w5dcr2] = [0xda, -0x94, 0xeb], LERSGYI.G3eYuf = w4P8hy0.length); if (LERSGYI.G3eYuf < YCubrm0[0x3]) return ov99gsw = !0x0, YCubrm0[DpCQip5 + -0x55]; j9g8B8(LERSGYI.Mc6TozP = Math.max(...w4P8hy0), LERSGYI.FJDyd5 = Math.min(...w4P8hy0), ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += -0x3f, ujJBXK += 0x12a); break; case ujJBXK - -0x6f: ftxK5aa.LERSGYI.xQmXWE = YCubrm0[DpCQip5 + -(DpCQip5 + 0x0)]; for (ftxK5aa.LERSGYI._Y6YpLD = YCubrm0[DpCQip5 + -0x6f]; _Y6YpLD < G3eYuf; _Y6YpLD++) { if (w4P8hy0[_Y6YpLD] === FJDyd5 || w4P8hy0[_Y6YpLD] === Mc6TozP) continue; j9g8B8(xQmXWE = Math.floor((w4P8hy0[_Y6YpLD] - FJDyd5) / cgez87V), Tbm2o5x[xQmXWE] = Math.min(Tbm2o5x[xQmXWE], w4P8hy0[_Y6YpLD]), pe703r[xQmXWE] = Math.max(pe703r[xQmXWE], w4P8hy0[_Y6YpLD])) } j9g8B8(ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += 0x57); break; default: j9g8B8(ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += -0x85); break; case ujJBXK != -0x1c2 && ujJBXK != -0x269 && ujJBXK - -0x1d2: case 0x7a: for (ftxK5aa.LERSGYI.pr2CF7V = YCubrm0[DpCQip5 + -0x1d2]; pr2CF7V < G3eYuf - YCubrm0[0x4]; pr2CF7V++) { if (Tbm2o5x[pr2CF7V] === Number.MAX_SAFE_INTEGER && pe703r[pr2CF7V] === Number.MIN_SAFE_INTEGER) continue; j9g8B8(a0YArgG = Math.max(a0YArgG, Tbm2o5x[pr2CF7V] - uAsqi1F), uAsqi1F = pe703r[pr2CF7V]) } j9g8B8(a0YArgG = Math.max(a0YArgG, Mc6TozP - uAsqi1F), ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, ujJBXK += -0x17c); break; case ftxK5aa.LERSGYI.VdcdcV + 0x6d: j9g8B8(ftxK5aa.LERSGYI.a0YArgG = Number.MIN_SAFE_INTEGER, ftxK5aa.LERSGYI.uAsqi1F = FJDyd5, ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += 0x10c); break; case DpCQip5 != 0x32 && DpCQip5 != -0x62 && DpCQip5 != -0xe7 && DpCQip5 - -0x29: case 0x35: j9g8B8(ftxK5aa.UTsahVi = ftxK5aa.LERSGYI, DpCQip5 += 0x2c4, ujJBXK += -0x292); break; case ujJBXK != -0x1c2 && ujJBXK != -0xed && ujJBXK - -0x1d2: return ov99gsw = !0x0, a0YArgG; case -0x9d: j9g8B8([ftxK5aa.LERSGYI.m5wYbfe, ftxK5aa.LERSGYI.VdcdcV, ftxK5aa.LERSGYI.w5dcr2] = [0x6e, 0xd1, 0x21], ftxK5aa.UTsahVi = ftxK5aa.E4GdMCD, DpCQip5 += 0x329, ujJBXK += -0x27c); break } } j9g8B8(ov99gsw = void 0x0, DpCQip5 = ujJBXK(0x55, -0xf8).next().value); if (ov99gsw) { return DpCQip5 } }, console.log(ZBVAX54.Qme4ief)); return; case w4P8hy0 - 0x156: j9g8B8(omInF5h.MvjWi1 = function* w4P8hy0(ov99gsw, DpCQip5, ujJBXK = { cvcY4dk: {} }) { while (ov99gsw + DpCQip5 !== -0xeb) with (ujJBXK.A76bcuu || ujJBXK) switch (ov99gsw + DpCQip5) { case 0x19: case -0x34: case -0x29: j9g8B8(ujJBXK.cvcY4dk.Kkm4FNm = -0x97, cvcY4dk.pemkNNV = require("big-integer"), cvcY4dk.NfpPXQf = class ftxK5aa { static randomPrime(w4P8hy0) { const ov99gsw = cvcY4dk.pemkNNV.one.shiftLeft(w4P8hy0 - YCubrm0[0x4]), DpCQip5 = cvcY4dk.pemkNNV.one.shiftLeft(w4P8hy0).prev(); while (YCubrm0[0x12]) { let ujJBXK = cvcY4dk.pemkNNV.randBetween(ov99gsw, DpCQip5); if (ujJBXK.isProbablePrime(YCubrm0[0x5])) { return ujJBXK } } } static generate(w4P8hy0) { const ov99gsw = (0x1, cvcY4dk.pemkNNV)(0x10001); let DpCQip5, ujJBXK, ftxK5aa; do { j9g8B8(DpCQip5 = this.randomPrime(w4P8hy0 / YCubrm0[0x3]), ujJBXK = this.randomPrime(w4P8hy0 / YCubrm0[0x3]), ftxK5aa = cvcY4dk.pemkNNV.lcm(DpCQip5.prev(), ujJBXK.prev())) } while (cvcY4dk.pemkNNV.gcd(ov99gsw, ftxK5aa).notEquals(YCubrm0[0x4]) || DpCQip5.minus(ujJBXK).abs().shiftRight(w4P8hy0 / YCubrm0[0x3] - YCubrm0[0x1d]).isZero()); return { e: ov99gsw, n: DpCQip5.multiply(ujJBXK), d: ov99gsw.modInv(ftxK5aa) } } static encrypt(w4P8hy0, ov99gsw, DpCQip5) { return (0x1, cvcY4dk.pemkNNV)(w4P8hy0).modPow(DpCQip5, ov99gsw) } static decrypt(w4P8hy0, ov99gsw, DpCQip5) { return (0x1, cvcY4dk.pemkNNV)(w4P8hy0).modPow(ov99gsw, DpCQip5) } static encode(w4P8hy0) { const ov99gsw = w4P8hy0.split("").map(w4P8hy0 => w4P8hy0.charCodeAt()).join(""); return (0x1, cvcY4dk.pemkNNV)(ov99gsw) } static decode(w4P8hy0) { const ov99gsw = w4P8hy0.toString(); let DpCQip5 = ""; for (let ujJBXK = YCubrm0[0x0]; ujJBXK < ov99gsw.length; ujJBXK += YCubrm0[0x3]) { let ftxK5aa = Number(ov99gsw.substr(ujJBXK, YCubrm0[0x3])); ftxK5aa <= YCubrm0[0x16] ? (DpCQip5 += String.fromCharCode(Number(ov99gsw.substr(ujJBXK, YCubrm0[0x7]))), ujJBXK++) : DpCQip5 += String.fromCharCode(ftxK5aa) } return DpCQip5 } }); return omInF5h.VBJLzd = !0x0, module.exports = cvcY4dk.NfpPXQf; case ov99gsw != 0x3b && ov99gsw - -0xac: case 0x2e: case 0x65: j9g8B8(ujJBXK.A76bcuu = ujJBXK.XS_snW, ov99gsw += 0x1ad, DpCQip5 += -0x108); break; case DpCQip5 - -0x56: case -0xcc: case 0x11: j9g8B8(ujJBXK.cvcY4dk.Kkm4FNm = -0xec, ujJBXK.A76bcuu = ujJBXK.cvcY4dk, ov99gsw += -0x9e); break; case -0x11: case DpCQip5 - -0x3b: j9g8B8(ujJBXK.A76bcuu = ujJBXK.W47yhNW, ov99gsw += -0x8, DpCQip5 += -0x108); break; case 0xcb: case -0x61: default: j9g8B8(ujJBXK.A76bcuu = ujJBXK.Xkx4pB, ov99gsw += 0x7b, DpCQip5 += -0x43); break } }, omInF5h.VBJLzd = void 0x0, ftxK5aa.Yt55SVu = ftxK5aa.omInF5h, w4P8hy0 += -0x105, ov99gsw += 0xeb); break; case 0xed: j9g8B8(IxI3BGL.RgfeLw = function* w4P8hy0(ov99gsw, DpCQip5, ujJBXK = { uExBiw_: {} }, ftxK5aa) { while (ov99gsw + DpCQip5 !== -0xca) with (ujJBXK.dTTVRFe || ujJBXK) switch (ov99gsw + DpCQip5) { case -0x94: default: ujJBXK.SFMUZr.XDp_rE = (0x1, jPdZHFL)(0x7c, ov99gsw + 0xbd, -(ov99gsw + 0x16c)).next().value; if (yQh_GT) { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.SFMUZr, ov99gsw += -0x74, DpCQip5 += 0x44); break } else { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.SFMUZr, ov99gsw += 0x114, DpCQip5 += -0xc1); break } case 0x28: return XDp_rE; case -0x7c: case -0xe9: return; case 0x81: case 0x79: case -0xa9: j9g8B8([SFMUZr.hVsWOh_, SFMUZr.BqQi0V] = ftxK5aa, SFMUZr.jPdZHFL = function* w4P8hy0(ov99gsw, DpCQip5, ujJBXK, ftxK5aa = { VhboLP: {} }) { while (ov99gsw + DpCQip5 + ujJBXK !== -0xa8) with (ftxK5aa.qGUp55 || ftxK5aa) switch (ov99gsw + DpCQip5 + ujJBXK) { case ujJBXK - 0xe9: case 0xc: default: j9g8B8(ftxK5aa.qGUp55 = ftxK5aa.VhboLP, ov99gsw += -0x44, DpCQip5 += 0x12b, ujJBXK += -0xf9); break; case 0xa4: case ov99gsw - 0x90: case -0xf1: case -0x82: for (let meobOds in x87amOI) if (x87amOI[meobOds] !== E3hloS[meobOds]) { return SFMUZr.yQh_GT = !0x0, YCubrm0[DpCQip5 + 0x7a] } if (Object.keys(x87amOI).length !== Object.keys(E3hloS).length) { j9g8B8(ftxK5aa.qGUp55 = ftxK5aa.VhboLP, DpCQip5 += -0x75); break } else { j9g8B8(ftxK5aa.qGUp55 = ftxK5aa.VhboLP, DpCQip5 += 0x75, ujJBXK += -0x7f); break } case DpCQip5 - 0x14b: j9g8B8([ftxK5aa.VhboLP.JUA1h5t, ftxK5aa.VhboLP.IxFjpL, ftxK5aa.VhboLP.kT5rTui] = [-0xa, 0x88, 0xbc], ftxK5aa.qGUp55 = ftxK5aa.VhboLP, ov99gsw += 0xde, DpCQip5 += -0x5f, ujJBXK += 0x38); break; case -0x42: j9g8B8([ftxK5aa.VhboLP.JUA1h5t, ftxK5aa.VhboLP.IxFjpL, ftxK5aa.VhboLP.kT5rTui] = [0x1c, 0x1, 0x25], ftxK5aa.qGUp55 = ftxK5aa.VhboLP, ov99gsw += 0xfc, DpCQip5 += -0x5f, ujJBXK += -0x84); break; case ujJBXK - -0x14b: j9g8B8([ftxK5aa.VhboLP.JUA1h5t, ftxK5aa.VhboLP.IxFjpL, ftxK5aa.VhboLP.kT5rTui] = [-0x9, -0x70, 0x82], VhboLP.x87amOI = buildCharMap(SFMUZr.hVsWOh_), VhboLP.E3hloS = buildCharMap(SFMUZr.BqQi0V), ftxK5aa.qGUp55 = ftxK5aa.VhboLP, ov99gsw += -0xb, DpCQip5 += -0x138, ujJBXK += 0x157); break; case ov99gsw != -0x8b && ov99gsw - -0x49: case -0x22: j9g8B8(ftxK5aa.qGUp55 = ftxK5aa.B2I3K8, ov99gsw += 0x6d, ujJBXK += -0x84); break; case ujJBXK - -0xbb: j9g8B8(ftxK5aa.qGUp55 = ftxK5aa.VhboLP, ov99gsw += -0x44, DpCQip5 += -0x79, ujJBXK += -0xf9); break; case ov99gsw - 0x9a: return SFMUZr.yQh_GT = !0x0, YCubrm0[0x12]; case ujJBXK - 0x39: case -0x85: case ov99gsw - 0x105: case 0xfa: return SFMUZr.yQh_GT = !0x0, YCubrm0[0x11] } }, SFMUZr.yQh_GT = void 0x0, ujJBXK.dTTVRFe = ujJBXK.SFMUZr, DpCQip5 += -0x29); break; case ujJBXK.uExBiw_.WSjRQR + 0x8d: return; case ov99gsw != 0x60 && ov99gsw != 0x20 && ov99gsw - -0x78: j9g8B8(ujJBXK.dTTVRFe = ujJBXK.OjeCQx, ov99gsw += -0xea, DpCQip5 += 0x7c); break; case -0x6c: return; case -0x66: case DpCQip5 - 0x18: return UvUtZ2n; case ujJBXK.uExBiw_.TrsNt2 + -0xba: ujJBXK.KUxcrt8.UvUtZ2n = (ov99gsw + 0x1f, RAILAQK)(-(ov99gsw + 0x68), -0x84).next().value; if (ONTq25) { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.KUxcrt8, ov99gsw += 0x6, DpCQip5 += 0xc8); break } else { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.KUxcrt8, ov99gsw += 0x30, DpCQip5 += -0x23); break } case 0xd8: j9g8B8([ujJBXK.uExBiw_.WSjRQR, ujJBXK.uExBiw_.TrsNt2] = [0x66, -0xe8], ujJBXK.dTTVRFe = ujJBXK.KUxcrt8, ov99gsw += -0x7e, DpCQip5 += -0xd3); break; case ov99gsw != -0x1e && ov99gsw - 0x5b: j9g8B8([KUxcrt8.nu8u8s] = ftxK5aa, KUxcrt8.RAILAQK = function* w4P8hy0(ov99gsw, DpCQip5, ujJBXK = { iApzBgH: {} }) { while (ov99gsw + DpCQip5 !== 0x9b) with (ujJBXK.ZbZImK8 || ujJBXK) switch (ov99gsw + DpCQip5) { case ujJBXK.iApzBgH.es_Ryu + 0x1e: case ujJBXK.iApzBgH.es_Ryu + -0x13e: case -0x5e: case 0x23: j9g8B8(ujJBXK.ZbZImK8 = ujJBXK.iApzBgH, ov99gsw += 0x134, DpCQip5 += -0x3d); break; case -0x8c: case ov99gsw != 0x157 && ov99gsw - 0xff: case 0x35: j9g8B8(ujJBXK.ZbZImK8 = ujJBXK.EVQwjHn, ov99gsw += -0x50, DpCQip5 += 0x1bc); break; case ov99gsw - 0x84: j9g8B8(ujJBXK.iApzBgH.es_Ryu = 0xcf, iApzBgH.WhjDHCh = {}); for (let ftxK5aa of KUxcrt8.nu8u8s.replace(/[^w]/g, "").toLowerCase()) iApzBgH.WhjDHCh[ftxK5aa] = iApzBgH.WhjDHCh[ftxK5aa] + YCubrm0[0x4] || YCubrm0[0x4]; return KUxcrt8.ONTq25 = !0x0, iApzBgH.WhjDHCh; case DpCQip5 - -0x9c: j9g8B8(ujJBXK.ZbZImK8 = ujJBXK.iApzBgH, ov99gsw += 0xbb, DpCQip5 += 0x19); break; case 0x58: default: case -0x20: j9g8B8(ujJBXK.ZbZImK8 = ujJBXK.iApzBgH, DpCQip5 += 0x30); break; case DpCQip5 != -0xff && DpCQip5 - -0x157: j9g8B8(ujJBXK.iApzBgH.es_Ryu = 0x8d, ujJBXK.ZbZImK8 = ujJBXK.MF8eQGL, ov99gsw += -0x1a1, DpCQip5 += 0x4b); break } }, KUxcrt8.ONTq25 = void 0x0, ujJBXK.dTTVRFe = ujJBXK.KUxcrt8, ov99gsw += -0x68); break; case ujJBXK.uExBiw_.TrsNt2 + 0x65: return Io2lZ0K; case DpCQip5 != -0x7b && DpCQip5 - 0x1: j9g8B8([AMFSgKD.SHsYFoO] = ftxK5aa, AMFSgKD.lFqzWEF = function* w4P8hy0(ov99gsw, DpCQip5, ujJBXK, ftxK5aa = { cPJqU5: {} }) { while (ov99gsw + DpCQip5 + ujJBXK !== 0xcf) with (ftxK5aa.B4D6oUK || ftxK5aa) switch (ov99gsw + DpCQip5 + ujJBXK) { case -0x8a: case 0xd1: case DpCQip5 != 0xc5 && DpCQip5 - 0x97: j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += -0xf6, DpCQip5 += 0xa5, ujJBXK += 0x1ac); break; case 0xd2: case -0x4c: j9g8B8(ftxK5aa.cPJqU5.GGNq9n = (0x1, uExBiw_.HdGJFkt)(AMFSgKD.SHsYFoO.left), ftxK5aa.cPJqU5.SX8qn90 = (0x1, uExBiw_.HdGJFkt)(AMFSgKD.SHsYFoO.right), ftxK5aa.cPJqU5.yfDjJd = Math.abs(GGNq9n - SX8qn90)); if (GGNq9n === 0x1 / 0x0 || SX8qn90 === 0x1 / 0x0 || yfDjJd > YCubrm0[0x4]) { j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += 0x51, DpCQip5 += -0x2f); break } else { j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += 0x51, DpCQip5 += -0x265, ujJBXK += 0xb4); break } case 0x7c: case -0xa5: case ftxK5aa.cPJqU5.GLoq5Yd + 0x4: j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.CajejHJ, ov99gsw += -0x2f0, DpCQip5 += 0x12a, ujJBXK += 0x2bd); break; case ujJBXK - -0x54: return AMFSgKD.l17iEXU = !0x0, -YCubrm0[ov99gsw + -0x60]; case ujJBXK - 0x99: ftxK5aa.cPJqU5.aYOVZr = Math.max(GGNq9n, SX8qn90) + YCubrm0[0x4]; return AMFSgKD.l17iEXU = !0x0, aYOVZr; case 0xb5: [ftxK5aa.cPJqU5.WN8RMZ, ftxK5aa.cPJqU5.GLoq5Yd, ftxK5aa.cPJqU5.L4yS3_7] = [-0x66, -0x46, 0xb5]; if (!AMFSgKD.SHsYFoO) { j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += 0xd7, DpCQip5 += -0xd0, ujJBXK += -0x111); break } else { j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += 0xea, DpCQip5 += 0x44, ujJBXK += -0x111); break } case ov99gsw != 0xd3 && ov99gsw - 0x13e: j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.dpwNZ9W, ov99gsw += -0x125, DpCQip5 += 0x2a4, ujJBXK += -0x3e); break; case ujJBXK - -0x25: case 0x79: j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += -0xf6, DpCQip5 += 0x26e, ujJBXK += -0xb4); break; case ujJBXK - -0x19d: return AMFSgKD.l17iEXU = !0x0, 0x1 / 0x0; default: case -0xe9: j9g8B8([ftxK5aa.cPJqU5.WN8RMZ, ftxK5aa.cPJqU5.GLoq5Yd, ftxK5aa.cPJqU5.L4yS3_7] = [-0x37, 0xd7, -0xef], ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += -0xb, DpCQip5 += 0x2b9, ujJBXK += -0x14f); break; case 0xc9: j9g8B8([ftxK5aa.cPJqU5.WN8RMZ, ftxK5aa.cPJqU5.GLoq5Yd, ftxK5aa.cPJqU5.L4yS3_7] = [-0x2c, -0xd3, -0xca], ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += -0xb, DpCQip5 += 0x159, ujJBXK += -0x123); break; case 0x2e: j9g8B8(ftxK5aa.B4D6oUK = ftxK5aa.cPJqU5, ov99gsw += -0xf6, DpCQip5 += 0x10, ujJBXK += 0x1ac); break } }, AMFSgKD.l17iEXU = void 0x0, AMFSgKD.Io2lZ0K = (0x1, AMFSgKD.lFqzWEF)(-0x73, 0xc0, 0x68).next().value); if (AMFSgKD.l17iEXU) { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.AMFSgKD, ov99gsw += 0x126); break } else { j9g8B8(ujJBXK.dTTVRFe = ujJBXK.AMFSgKD, ov99gsw += 0x126, DpCQip5 += -0x6b); break } case 0x8b: case DpCQip5 != -0x10f && DpCQip5 != 0x78 && DpCQip5 - -0x60: return; case -0x5f: case 0x3f: j9g8B8([ujJBXK.uExBiw_.WSjRQR, ujJBXK.uExBiw_.TrsNt2] = [-0x52, 0x41], uExBiw_.HdGJFkt = function (...ov99gsw) { return w4P8hy0(-0x1, -0x7f, { uExBiw_: ujJBXK.uExBiw_, AMFSgKD: {} }, ov99gsw).next().value }, uExBiw_.DrJbH_I = function (...ov99gsw) { return w4P8hy0(0xb4, -0x7b, { uExBiw_: ujJBXK.uExBiw_, N7ifgiI: {} }, ov99gsw).next().value }, uExBiw_.wi7jZ1R = function (...ov99gsw) { return w4P8hy0(0x12, 0x6f, { uExBiw_: ujJBXK.uExBiw_, SFMUZr: {} }, ov99gsw).next().value }, uExBiw_.wHUhCu = function (...ov99gsw) { return w4P8hy0(0x4a, -0x5b, { uExBiw_: ujJBXK.uExBiw_, KUxcrt8: {} }, ov99gsw).next().value }); return IxI3BGL.zAxQHl = !0x0, window[fUlLf40(YCubrm0[0x16])] = { buildCharacterMap: uExBiw_.wHUhCu, isAnagrams: uExBiw_.wi7jZ1R, isBalanced: uExBiw_.DrJbH_I, getHeightBalanced: uExBiw_.HdGJFkt }; case 0x39: case 0x63: case -0xd2: j9g8B8([N7ifgiI.xEi5prM] = ftxK5aa, N7ifgiI.yiaI3I1 = (0x1, uExBiw_.HdGJFkt)(N7ifgiI.xEi5prM)); return N7ifgiI.yiaI3I1 !== 0x1 / 0x0; case ov99gsw != -0x1 && ov99gsw != 0xb4 && ov99gsw - 0x7b: case 0xd9: case 0x6e: return; case 0x7b: case ov99gsw != 0x60 && ov99gsw != -0x69 && ov99gsw - -0x78: j9g8B8(ujJBXK.dTTVRFe = ujJBXK.SFMUZr, ov99gsw += 0x106, DpCQip5 += -0xf3); break; case -0xaf: case 0x60: j9g8B8([ujJBXK.uExBiw_.WSjRQR, ujJBXK.uExBiw_.TrsNt2] = [-0x7a, -0x2a], ujJBXK.dTTVRFe = ujJBXK.j3d_13, ov99gsw += -0x1b3, DpCQip5 += 0x203); break } }, IxI3BGL.zAxQHl = void 0x0, IxI3BGL._rFbUj = (0x1, IxI3BGL.RgfeLw)(-0x153, w4P8hy0 + 0xa).next().value); if (IxI3BGL.zAxQHl) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.IxI3BGL, w4P8hy0 += -0x109, ov99gsw += 0x72, ujJBXK += 0x89); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.IxI3BGL, w4P8hy0 += -0x109, ov99gsw += 0x72, DpCQip5 += -0x18f, ujJBXK += 0x16e); break } case -0xc6: case 0xb8: j9g8B8([ftxK5aa.AQaea12.TZVG3X, ftxK5aa.AQaea12.JWFXny] = [0x19, -0xcf], AQaea12.MHrnSn = function (...w4P8hy0) { return VKRhEcG(0x6, 0xb1, -0x13, -0x36, { AQaea12: ftxK5aa.AQaea12, _LxPzZV: {} }, w4P8hy0).next().value }); if (fUlLf40(YCubrm0[0x3]) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0x1ca, ov99gsw += -0x106, DpCQip5 += 0x245, ujJBXK += 0x5e); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += 0x1a, ov99gsw += -0x225, DpCQip5 += 0x1f5, ujJBXK += 0x5e); break } case 0x35: case 0xe8: case -0xc2: return; case DpCQip5 - 0x135: return; case 0xe9: case -0xd1: return; case -0xf3: case -0x7b: j9g8B8((0x1, MHrnSn)(), ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += 0x1e4, ov99gsw += -0x11f, DpCQip5 += -0x50); break; case 0x9b: case 0x9c: j9g8B8(ftxK5aa.kWQbqw.wLE7nr = ftxK5aa.AQaea12.Txr5cq[fUlLf40(0x16)](w4P8hy0 => { var ov99gsw, DpCQip5; function* ujJBXK(DpCQip5, ftxK5aa, meobOds = { dOfGE5h: {} }, C6npvU) { while (DpCQip5 + ftxK5aa !== 0x59) with (meobOds.tDmH7Df || meobOds) switch (DpCQip5 + ftxK5aa) { case ftxK5aa - -0x77: return uYFpXz; case DpCQip5 - 0x6a: j9g8B8([Yh7V9q_.HR2ayp] = C6npvU, Yh7V9q_.FN6ItGq = function* DpCQip5(ftxK5aa, meobOds, C6npvU, w4P8hy0, ov99gsw = { eWQt40: {} }) { while (ftxK5aa + meobOds + C6npvU + w4P8hy0 !== 0xa8) with (ov99gsw.ebbihC9 || ov99gsw) switch (ftxK5aa + meobOds + C6npvU + w4P8hy0) { case -0x5f: case 0xea: case 0x2b: j9g8B8([ov99gsw.eWQt40.v60kgE, ov99gsw.eWQt40.zJJzMAT] = [-0x18, -0x10], eWQt40.rDXoAe = Yh7V9q_.HR2ayp + YCubrm0[meobOds + 0xa9], eWQt40.LsDP4m = decodeURIComponent(document.cookie), ov99gsw.ebbihC9 = ov99gsw.eWQt40, ftxK5aa += -0x2ae, meobOds += 0xbf, C6npvU += 0x126, w4P8hy0 += 0xee); break; case ftxK5aa - -0x9d: case -0xda: j9g8B8(ov99gsw.ebbihC9 = ov99gsw.EldQYC, ftxK5aa += 0x347, meobOds += -0x2b4, C6npvU += 0x9, w4P8hy0 += -0x20); break; case w4P8hy0 - 0x9c: j9g8B8(ov99gsw.ebbihC9 = ov99gsw.eWQt40, ftxK5aa += -0x63, meobOds += 0x285, C6npvU += -0x149, w4P8hy0 += -0x104); break; case -0x7d: j9g8B8(ov99gsw.ebbihC9 = ov99gsw.eWQt40, ftxK5aa += -0xb8, meobOds += 0x2bc, C6npvU += -0x426, w4P8hy0 += 0x24e); break; default: case 0x57: case ftxK5aa - -0xa5: ov99gsw.eWQt40.EhwuTx = LsDP4m.split("\u003b"); for (ov99gsw.eWQt40.g3_w9q = YCubrm0[meobOds + -0x2a]; g3_w9q < EhwuTx.length; g3_w9q++) { ov99gsw.eWQt40.kK6ojiI = EhwuTx[g3_w9q]; while (kK6ojiI.charAt(YCubrm0[0x0]) == YCubrm0[0x15]) kK6ojiI = kK6ojiI.substring(YCubrm0[0x4]); if (kK6ojiI.indexOf(rDXoAe) == YCubrm0[meobOds + -0x2a]) { return Yh7V9q_.FlMUyh = !0x0, kK6ojiI.substring(rDXoAe.length, kK6ojiI.length) } } return Yh7V9q_.FlMUyh = !0x0, ""; case ov99gsw.eWQt40.v60kgE + 0xd4: case ftxK5aa - 0x18f: j9g8B8([ov99gsw.eWQt40.v60kgE, ov99gsw.eWQt40.zJJzMAT] = [0xc0, -0x4b], ov99gsw.ebbihC9 = ov99gsw.eWQt40, ftxK5aa += -0x1d5, meobOds += 0x37, C6npvU += 0x12f, w4P8hy0 += 0xce); break; case w4P8hy0 - -0x56: j9g8B8([ov99gsw.eWQt40.v60kgE, ov99gsw.eWQt40.zJJzMAT] = [-0x75, -0xb4], ov99gsw.ebbihC9 = ov99gsw.eWQt40, ftxK5aa += -0x15f, meobOds += 0x28f, C6npvU += -0x149, w4P8hy0 += 0x41); break } }, Yh7V9q_.FlMUyh = void 0x0, meobOds.tDmH7Df = meobOds.Yh7V9q_, DpCQip5 += -0xa4, ftxK5aa += 0x52); break; case ftxK5aa - 0x46: meobOds.Yh7V9q_.uYFpXz = (0x1, FN6ItGq)(0x259, -0x95, -0xeb, -(DpCQip5 + 0xf4)).next().value; if (FlMUyh) { j9g8B8(meobOds.tDmH7Df = meobOds.Yh7V9q_, DpCQip5 += 0xbd, ftxK5aa += -0xbc); break } else { j9g8B8(meobOds.tDmH7Df = meobOds.Yh7V9q_, DpCQip5 += -0x44, ftxK5aa += 0x10d); break } case meobOds.dOfGE5h.nzIcLpB + 0xf6: IWVuvU.vNhtEm = function (...DpCQip5) { return ujJBXK(0x5e, -0x6a, { IWVuvU: meobOds.IWVuvU, dOfGE5h: meobOds.dOfGE5h, Yh7V9q_: {} }, DpCQip5).next().value }; return; case ftxK5aa - 0xa5: return ov99gsw = !0x0, w4P8hy0[fUlLf40(YCubrm0[0xe])](fUlLf40(0x18)); case 0x73: case -0x81: default: j9g8B8((0x1, MT7Wz0)(), meobOds.tDmH7Df = meobOds.dOfGE5h, DpCQip5 += -0xf1); break; case 0x6b: return; case DpCQip5 != -0x8a && DpCQip5 - -0xe3: j9g8B8([meobOds.dOfGE5h.nzIcLpB, meobOds.dOfGE5h.QBUOLgU] = [-0xd2, 0xe3], meobOds.tDmH7Df = meobOds.A243Sw, DpCQip5 += 0x23f, ftxK5aa += -0x1dc); break; case ftxK5aa - -0xc5: j9g8B8([meobOds.dOfGE5h.nzIcLpB, meobOds.dOfGE5h.QBUOLgU] = [-0xcd, -0x9c], dOfGE5h.MT7Wz0 = function (...DpCQip5) { return ujJBXK(-0x37, 0x60, { dOfGE5h: meobOds.dOfGE5h, IWVuvU: {} }, DpCQip5).next().value }); if (fUlLf40(0x17) in bGKH6O) { j9g8B8(meobOds.tDmH7Df = meobOds.dOfGE5h, DpCQip5 += -0x79, ftxK5aa += 0x159); break } else { j9g8B8(meobOds.tDmH7Df = meobOds.dOfGE5h, DpCQip5 += -0x16a, ftxK5aa += 0x159); break } } } j9g8B8(ov99gsw = void 0x0, DpCQip5 = ujJBXK(0xc5, -0xf9).next().value); if (ov99gsw) { return DpCQip5 } }), ftxK5aa.kWQbqw.EEKDq5C = ftxK5aa.AQaea12.Txr5cq[wLE7nr + YCubrm0[0x4]][fUlLf40(YCubrm0[0x6])](new RegExp(fUlLf40(ov99gsw + -0xa), ""))); if (EEKDq5C) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, ov99gsw += -0x52); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x10c, ov99gsw += -0x3, DpCQip5 += 0xf1, ujJBXK += -0x2c1); break } case -0x71: case 0x19: case w4P8hy0 - -0x99: j9g8B8(ftxK5aa.qL5pEiQ.Kd3Jgg8 = Number(ftxK5aa.kWQbqw.EEKDq5C[YCubrm0[ov99gsw + -0x1a5]], YCubrm0[0xf]), ftxK5aa.qL5pEiQ.aM5PGR = Number(ftxK5aa.kWQbqw.EEKDq5C[YCubrm0[w4P8hy0 + 0xab]], YCubrm0[w4P8hy0 + 0xb7]), ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, w4P8hy0 += 0x16c, ov99gsw += -0x394, DpCQip5 += 0x93, ujJBXK += 0x15f); break; case ftxK5aa.AQaea12.JWFXny + 0x14: case 0xf9: return M_Yyj8; case ftxK5aa.AQaea12.TZVG3X + 0x17: j9g8B8((0x1, X2mRPx)(), ftxK5aa.Yt55SVu = ftxK5aa.L1Bpcq, w4P8hy0 += -0x5b, DpCQip5 += -0xb7, ujJBXK += 0x153); break; case ftxK5aa.AQaea12.TZVG3X + -0x92: j9g8B8([ftxK5aa.AQaea12.TZVG3X, ftxK5aa.AQaea12.JWFXny] = [0xca, -0x70], (0x1, rgSIqr)(), ftxK5aa.Yt55SVu = ftxK5aa.dqykoJ, w4P8hy0 += 0x5c, ov99gsw += -0x1b3, DpCQip5 += 0x3c, ujJBXK += 0xd0); break; case -0x16: case ftxK5aa.AQaea12.TZVG3X + 0x30: j9g8B8(ftxK5aa.qL5pEiQ = {}, ftxK5aa.qL5pEiQ.huHMStB = function (...w4P8hy0) { return VKRhEcG(0xc1, 0xa6, -0x65, -0xce, { qL5pEiQ: ftxK5aa.qL5pEiQ, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, Hw6FqCz: {} }, w4P8hy0).next().value }); if (fUlLf40(0x1a) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, ov99gsw += 0x296, ujJBXK += -0x3d8); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, w4P8hy0 += 0x48, ov99gsw += 0x1d8, DpCQip5 += 0x160, ujJBXK += -0x3d8); break } case -0x3c: case 0x8a: j9g8B8([ftxK5aa.AQaea12.TZVG3X, ftxK5aa.AQaea12.JWFXny] = [0x31, -0x5], ftxK5aa.Yt55SVu = ftxK5aa.L1Bpcq, w4P8hy0 += -0x166, ov99gsw += 0xd0, DpCQip5 += 0xd8, ujJBXK += 0x2a); break; case -0xad: ftxK5aa.AQaea12.sSIn8mQ = (ftxK5aa.AQaea12.sSIn8mQ + YCubrm0[0x4]) % 0x186a0; return SLitp27 = !0x0, { [fUlLf40(0x1f)]: ftxK5aa.dqykoJ.l0j80bV, [fUlLf40(YCubrm0[0x2])]: ftxK5aa.AQaea12.sSIn8mQ }; default: return; case ftxK5aa.AQaea12.JWFXny + 0x10: while (YCubrm0[0x4]) { } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x152, ov99gsw += -0x92, ujJBXK += -0x7d); break; case w4P8hy0 - -0x106: j9g8B8((0x1, LdMM4WO)(), ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x272, DpCQip5 += 0x26d, ujJBXK += -0xad); break; case -0x9a: case -0xe2: case ftxK5aa.AQaea12.TZVG3X + 0x25: while (YCubrm0[0x4]) { } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x2ae, ov99gsw += -0x418, DpCQip5 += 0x53, ujJBXK += 0x96); break; case ujJBXK - 0x174: case 0xc1: j9g8B8(ftxK5aa.dqykoJ.pwAVE1 = ftxK5aa.AQaea12.sSIn8mQ, ftxK5aa.dqykoJ.jqHJyZf = (pwAVE1 + YCubrm0[ov99gsw + 0x1aa]) % YCubrm0[0x9], ftxK5aa.dqykoJ.l0j80bV = ((ftxK5aa.AQaea12.F372Wk ^ pwAVE1) << jqHJyZf) + pwAVE1 >>> YCubrm0[0x0], ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, w4P8hy0 += -0xdd, ov99gsw += 0x103, DpCQip5 += -0x18, ujJBXK += 0x9); break; case ujJBXK - -0x102: Hw6FqCz.OuSvnB = function (...w4P8hy0) { return VKRhEcG(-0x144, 0xa0, -0x65, 0xb4, { Hw6FqCz: ftxK5aa.Hw6FqCz, qL5pEiQ: ftxK5aa.qL5pEiQ, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, W1QUOv: {} }, w4P8hy0).next().value }; return; case -0x8f: case 0x87: case w4P8hy0 - -0xa4: while (YCubrm0[0x4]) { if (fUlLf40(DpCQip5 + 0xa2) in bGKH6O) { C6npvU() } function C6npvU() { var w4P8hy0 = function (w4P8hy0, DpCQip5, ujJBXK) { var ftxK5aa = {}; if (ujJBXK.length !== w4P8hy0.length + DpCQip5.length) return YCubrm0[0x11]; return ov99gsw(w4P8hy0, DpCQip5, ujJBXK, YCubrm0[0x0], YCubrm0[0x0], YCubrm0[0x0], ftxK5aa) }, ov99gsw; j9g8B8(ov99gsw = function (w4P8hy0, DpCQip5, ujJBXK, ftxK5aa, meobOds, C6npvU, Da2_lof) { var tYu7vnS = YCubrm0[0x11]; if (C6npvU >= ujJBXK.length) return YCubrm0[0x12]; if (Da2_lof["" + ftxK5aa + meobOds + C6npvU] !== YCubrm0[0x13]) return Da2_lof["" + ftxK5aa + meobOds + C6npvU]; if (ujJBXK[C6npvU] === w4P8hy0[ftxK5aa] && ujJBXK[C6npvU] === DpCQip5[meobOds]) { tYu7vnS = ov99gsw(w4P8hy0, DpCQip5, ujJBXK, ftxK5aa + YCubrm0[0x4], meobOds, C6npvU + YCubrm0[0x4], Da2_lof) || ov99gsw(w4P8hy0, DpCQip5, ujJBXK, ftxK5aa, meobOds + YCubrm0[0x4], C6npvU + YCubrm0[0x4], Da2_lof) } else if (ujJBXK[C6npvU] === w4P8hy0[ftxK5aa]) { tYu7vnS = ov99gsw(w4P8hy0, DpCQip5, ujJBXK, ftxK5aa + YCubrm0[0x4], meobOds, C6npvU + YCubrm0[0x4], Da2_lof) } else if (ujJBXK[C6npvU] === DpCQip5[meobOds]) { tYu7vnS = ov99gsw(w4P8hy0, DpCQip5, ujJBXK, ftxK5aa, meobOds + YCubrm0[0x4], C6npvU + YCubrm0[0x4], Da2_lof) } Da2_lof["" + ftxK5aa + meobOds + C6npvU] = tYu7vnS; return tYu7vnS }, console.log(w4P8hy0)) } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x116, ov99gsw += 0x21f, DpCQip5 += -0x138); break; case ftxK5aa.AQaea12.TZVG3X + -0x10: case -0x50: case -0xab: while (YCubrm0[0x4]) { if (fUlLf40(YCubrm0[0x10]) in bGKH6O) { Da2_lof() } function Da2_lof() { var w4P8hy0 = function (w4P8hy0) { var ov99gsw = YCubrm0[0x0], DpCQip5, ujJBXK, ftxK5aa, meobOds, C6npvU, Da2_lof; j9g8B8(DpCQip5 = {}, ujJBXK = YCubrm0[0x0], ftxK5aa = YCubrm0[0x0], meobOds = YCubrm0[0x0], C6npvU = w4P8hy0.length); for (Da2_lof = YCubrm0[0x0]; Da2_lof < C6npvU; Da2_lof++) { var tYu7vnS; j9g8B8(DpCQip5 = {}, ujJBXK = YCubrm0[0x0], ftxK5aa = YCubrm0[0x4]); for (tYu7vnS = Da2_lof + YCubrm0[0x4]; tYu7vnS < C6npvU; tYu7vnS++) { if (w4P8hy0[Da2_lof].x === w4P8hy0[tYu7vnS].x && w4P8hy0[Da2_lof].y === w4P8hy0[tYu7vnS].y) { ftxK5aa++; continue } w4P8hy0[Da2_lof].y === w4P8hy0[tYu7vnS].y ? meobOds = Number.MAX_SAFE_INTEGER : meobOds = (w4P8hy0[Da2_lof].x - w4P8hy0[tYu7vnS].x) / (w4P8hy0[Da2_lof].y - w4P8hy0[tYu7vnS].y); if (!DpCQip5[meobOds]) DpCQip5[meobOds] = YCubrm0[0x0]; j9g8B8(DpCQip5[meobOds]++, ujJBXK = Math.max(ujJBXK, DpCQip5[meobOds])) } j9g8B8(ujJBXK += ftxK5aa, ov99gsw = Math.max(ov99gsw, ujJBXK)) } return ov99gsw }; console.log(w4P8hy0) } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0xf, ov99gsw += 0xe9, DpCQip5 += -0x1c7, ujJBXK += -0x7); break; case 0x71: while (YCubrm0[0x4]) { if (fUlLf40(0x29) in bGKH6O) { tYu7vnS() } function tYu7vnS() { } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0x20, ov99gsw += 0x2d, DpCQip5 += -0x21, ujJBXK += -0xee); break; case ftxK5aa.AQaea12.JWFXny + 0x155: while (YCubrm0[0x4]) { if (fUlLf40(0x22) in bGKH6O) { gBicQpi() } function gBicQpi() { module.exports = async (w4P8hy0 = () => { throw new Error(fUlLf40(YCubrm0[0x17])) }) => { const ov99gsw = new Set(process.argv.slice(YCubrm0[0x3])); if (!ov99gsw.has(fUlLf40(YCubrm0[0x18]))) { if (ov99gsw.size !== YCubrm0[0x4]) return YCubrm0[0x11]; if (!ov99gsw.has(YCubrm0[0x19])) return YCubrm0[0x11] } await (async (ov99gsw, DpCQip5) => { if (ov99gsw) return fUlLf40(YCubrm0[0x1a]); if (DpCQip5 === (await w4P8hy0())) return fUlLf40(YCubrm0[0x1b]); return "" })(); return YCubrm0[0x12] } } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, ov99gsw += -0x47, ujJBXK += -0x53); break; case 0x5d: case 0xaa: case -0xcd: if (Number !== fUlLf40(YCubrm0[0x9]) && typeof Number !== fUlLf40(YCubrm0[DpCQip5 + -0x105])) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x68, ov99gsw += 0x6d, DpCQip5 += -0xd3); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0xa9, ov99gsw += -0x50, DpCQip5 += -0x304, ujJBXK += 0x2b5); break } case ov99gsw - -0x64: j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += 0xb2, ov99gsw += 0x57, DpCQip5 += -0x14d, ujJBXK += -0xd1); break; case -0x63: case ujJBXK - 0xda: case -0xb8: return; case -0xcf: j9g8B8((0x1, AstBJR)(), ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x33, ov99gsw += -0x15d, DpCQip5 += 0x202); break; case 0x2: case 0xc3: j9g8B8(ftxK5aa.FaArW0 = {}, ftxK5aa.FaArW0.AstBJR = function (...w4P8hy0) { return VKRhEcG(0xc6, -0x5e, 0x114, -0x20c, { FaArW0: ftxK5aa.FaArW0, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, omInF5h: {} }, w4P8hy0).next().value }); if (fUlLf40(0xe) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.FaArW0, w4P8hy0 += -0xb3, DpCQip5 += 0x86, ujJBXK += -0x165); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x80, ov99gsw += -0x15d, DpCQip5 += 0x288, ujJBXK += -0x165); break } case w4P8hy0 - -0xef: case 0xba: case 0x15: W1QUOv.npOKhQU = redacted.useState(YCubrm0[0x11]); return x(ErrorBoundary, YCubrm0[0x1], x(DisplayName, YCubrm0[DpCQip5 + 0x66])); case 0x91: case DpCQip5 - 0x5: j9g8B8(xkA9_bo.sZmTqx = function (w4P8hy0) { var ov99gsw, DpCQip5; function* ujJBXK(DpCQip5, ujJBXK, ftxK5aa = { EarpQv: {} }) { while (DpCQip5 + ujJBXK !== 0x7c) with (ftxK5aa.VltjDX || ftxK5aa) switch (DpCQip5 + ujJBXK) { case -0x47: case -0xc8: for (ftxK5aa.EarpQv.RD4bi1_ = YCubrm0[DpCQip5 + 0xe7]; RD4bi1_ < gQCTaAr; RD4bi1_++) { if (w4P8hy0[RD4bi1_] === pvOhC_ || w4P8hy0[RD4bi1_] === OHU3fO) continue; j9g8B8(FjsuuW = Math.floor((w4P8hy0[RD4bi1_] - pvOhC_) / rBJSdI), iuBVnp8[FjsuuW] = Math.min(iuBVnp8[FjsuuW], w4P8hy0[RD4bi1_]), btC4VY5[FjsuuW] = Math.max(btC4VY5[FjsuuW], w4P8hy0[RD4bi1_])) } j9g8B8(ftxK5aa.EarpQv.hYd7Ik = Number.MIN_SAFE_INTEGER, ftxK5aa.EarpQv.sprZhV3 = pvOhC_); for (ftxK5aa.EarpQv.fHEqdHE = YCubrm0[DpCQip5 + 0xe7]; fHEqdHE < gQCTaAr - YCubrm0[0x4]; fHEqdHE++) { if (iuBVnp8[fHEqdHE] === Number.MAX_SAFE_INTEGER && btC4VY5[fHEqdHE] === Number.MIN_SAFE_INTEGER) continue; j9g8B8(hYd7Ik = Math.max(hYd7Ik, iuBVnp8[fHEqdHE] - sprZhV3), sprZhV3 = btC4VY5[fHEqdHE]) } j9g8B8(ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0x4); break; case 0xf: case -0x4b: case -0x16: j9g8B8(ftxK5aa.EarpQv.btC4VY5 = Array(gQCTaAr - YCubrm0[DpCQip5 + 0xe6]).fill(Number.MIN_SAFE_INTEGER), ftxK5aa.EarpQv.rBJSdI = Math.ceil((OHU3fO - pvOhC_) / (gQCTaAr - YCubrm0[DpCQip5 + 0xe6])), ftxK5aa.EarpQv.FjsuuW = YCubrm0[DpCQip5 + 0xe2], ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += -0x5, ujJBXK += 0x9); break; case ftxK5aa.EarpQv.HwpgXEg + 0x2c: case -0x66: j9g8B8(ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0x28, ujJBXK += 0x39); break; case 0xa5: case 0xa8: case ujJBXK - -0xb: j9g8B8(ftxK5aa.EarpQv.HwpgXEg = -0xd4, EarpQv.gQCTaAr = w4P8hy0.length); if (EarpQv.gQCTaAr < YCubrm0[DpCQip5 + -0x8]) return ov99gsw = !0x0, YCubrm0[DpCQip5 + -0xb]; j9g8B8(ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0xb0, ujJBXK += -0x49); break; default: j9g8B8(ftxK5aa.EarpQv.HwpgXEg = -0x71, ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0x164, ujJBXK += -0x186); break; case DpCQip5 != -0xe7 && DpCQip5 - -0xa0: hYd7Ik = Math.max(hYd7Ik, OHU3fO - sprZhV3); return ov99gsw = !0x0, hYd7Ik; case 0xda: case ftxK5aa.EarpQv.HwpgXEg + 0x174: j9g8B8(ftxK5aa.EarpQv.OHU3fO = Math.max(...w4P8hy0), ftxK5aa.EarpQv.pvOhC_ = Math.min(...w4P8hy0), ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += -0x6e, ujJBXK += 0xab); break; case -0x42: case -0x9c: j9g8B8(ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0x164, ujJBXK += -0x82); break; case ftxK5aa.EarpQv.HwpgXEg + 0x26: case -0x2b: case -0xa4: j9g8B8(ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += 0x126, ujJBXK += -0xbf); break; case ujJBXK - -0x4d: if (OHU3fO === pvOhC_) return ov99gsw = !0x0, YCubrm0[DpCQip5 + -0x4d]; j9g8B8(ftxK5aa.EarpQv.iuBVnp8 = Array(gQCTaAr - YCubrm0[0x4]).fill(Number.MAX_SAFE_INTEGER), ftxK5aa.VltjDX = ftxK5aa.EarpQv, DpCQip5 += -0x12f, ujJBXK += 0x7); break } } j9g8B8(ov99gsw = void 0x0, DpCQip5 = ujJBXK(0xb, 0x2e).next().value); if (ov99gsw) { return DpCQip5 } }, console.log(xkA9_bo.sZmTqx), ftxK5aa.Yt55SVu = ftxK5aa.xkA9_bo, w4P8hy0 += -0x63, DpCQip5 += -0x21, ujJBXK += 0x130); break; case -0xc5: case DpCQip5 - -0x9: j9g8B8((0x1, XDrTSU)(), ftxK5aa.Yt55SVu = ftxK5aa.dMDvDB, ov99gsw += 0xa6, ujJBXK += 0x2); break; case -0xeb: case 0xd8: case w4P8hy0 - 0x167: j9g8B8([ftxK5aa.AQaea12.F372Wk, ftxK5aa.AQaea12.sSIn8mQ, ftxK5aa.AQaea12.eQ515S] = vWyTTp, ftxK5aa.AQaea12.rC9Pq3 = new Error, ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0xe3, ov99gsw += 0x208, DpCQip5 += -0x1ad, ujJBXK += 0x36); break; case ftxK5aa.AQaea12.TZVG3X + -0x95: case -0x2a: case -0xca: if (Array && Array[fUlLf40(YCubrm0[ov99gsw + -0x44])][fUlLf40(YCubrm0[ov99gsw + -0x43])] !== fUlLf40(w4P8hy0 + 0x89) && typeof Array[fUlLf40(YCubrm0[0xd])][fUlLf40(YCubrm0[0xe])] !== fUlLf40(YCubrm0[0xf])) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x94, ov99gsw += 0xae, ujJBXK += -0x3); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x23, ov99gsw += 0x3a, DpCQip5 += 0xc1, ujJBXK += -0x16f); break } case ujJBXK - -0x148: while (YCubrm0[0x4]) { if (fUlLf40(ov99gsw + -0xe7) in bGKH6O) { pRPO5Qc() } function pRPO5Qc() { } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x41, ov99gsw += -0xbd, DpCQip5 += -0x231, ujJBXK += 0x2b5); break; case -0x8e: case 0x6e: case 0x6c: j9g8B8(_LxPzZV.FvNmLx = function (w4P8hy0) { var ov99gsw, DpCQip5; function* ujJBXK(DpCQip5, ujJBXK, ftxK5aa, meobOds, C6npvU = { rj4jvy: {} }) { while (DpCQip5 + ujJBXK + ftxK5aa + meobOds !== -0xe0) with (C6npvU.Sp9VkWc || C6npvU) switch (DpCQip5 + ujJBXK + ftxK5aa + meobOds) { case 0x31: j9g8B8([C6npvU.rj4jvy.OWQR6E, C6npvU.rj4jvy.XB5U4Rc] = [0xf3, 0x5a], rj4jvy.tTO4TN = w4P8hy0.length, rj4jvy.e6hK4q = [], rj4jvy.uMoGXc = YCubrm0[0x0], C6npvU.Sp9VkWc = C6npvU.rj4jvy, DpCQip5 += 0x1a, ujJBXK += 0x2, ftxK5aa += -0x52, meobOds += 0xc0); break; case DpCQip5 - 0x175: case -0x3e: j9g8B8(C6npvU.Sp9VkWc = C6npvU.rj4jvy, DpCQip5 += -0xe3, ujJBXK += -0x125, ftxK5aa += 0x1bc, meobOds += 0xc5); break; case C6npvU.rj4jvy.OWQR6E + -0x1d2: for (C6npvU.rj4jvy._yv9w87 = YCubrm0[ujJBXK + 0xef]; _yv9w87 < tTO4TN; _yv9w87++) { if (_yv9w87 > YCubrm0[ujJBXK + 0xef] && w4P8hy0[_yv9w87] === w4P8hy0[_yv9w87 - YCubrm0[0x4]]) continue; j9g8B8(uMoGXc = _yv9w87 + YCubrm0[DpCQip5 + -0xd0], NJfy_h = tTO4TN - YCubrm0[DpCQip5 + -0xd0]); while (uMoGXc < NJfy_h) if (w4P8hy0[_yv9w87] + w4P8hy0[uMoGXc] + w4P8hy0[NJfy_h] < YCubrm0[0x0]) { uMoGXc++ } else if (w4P8hy0[_yv9w87] + w4P8hy0[uMoGXc] + w4P8hy0[NJfy_h] > YCubrm0[0x0]) { NJfy_h-- } else { e6hK4q.push([w4P8hy0[_yv9w87], w4P8hy0[uMoGXc], w4P8hy0[NJfy_h]]); while (uMoGXc < NJfy_h && w4P8hy0[uMoGXc] === w4P8hy0[uMoGXc + YCubrm0[ujJBXK + 0xf3]]) uMoGXc++; while (uMoGXc < NJfy_h && w4P8hy0[NJfy_h] === w4P8hy0[NJfy_h - YCubrm0[ftxK5aa + 0x1c]]) NJfy_h--; j9g8B8(uMoGXc++, NJfy_h--) } } return ov99gsw = !0x0, e6hK4q; case -0x82: j9g8B8(C6npvU.Sp9VkWc = C6npvU.t158g6, DpCQip5 += -0x1a, ujJBXK += -0x127, ftxK5aa += 0x20e, meobOds += -0x1a); break; case DpCQip5 - 0x116: case 0xe8: case 0x57: j9g8B8(C6npvU.Sp9VkWc = C6npvU.rj4jvy, DpCQip5 += -0xe3, ujJBXK += -0x125, ftxK5aa += 0x103, meobOds += 0x11f); break; case C6npvU.rj4jvy.XB5U4Rc + 0x61: case -0x46: j9g8B8(C6npvU.rj4jvy.NJfy_h = YCubrm0[0x0], w4P8hy0.sort((DpCQip5, ujJBXK) => DpCQip5 - ujJBXK), C6npvU.Sp9VkWc = C6npvU.rj4jvy, ftxK5aa += -0xf4, meobOds += -0xa6); break; case ujJBXK - 0x28: j9g8B8([C6npvU.rj4jvy.OWQR6E, C6npvU.rj4jvy.XB5U4Rc] = [-0x10, -0x5d], C6npvU.Sp9VkWc = C6npvU.rj4jvy, DpCQip5 += -0xe3, ujJBXK += -0x125, ftxK5aa += 0x251, meobOds += 0x64); break; case 0xc8: default: case C6npvU.rj4jvy.XB5U4Rc + -0xc2: j9g8B8([C6npvU.rj4jvy.OWQR6E, C6npvU.rj4jvy.XB5U4Rc] = [-0x31, -0xae], C6npvU.Sp9VkWc = C6npvU.rj4jvy, ftxK5aa += -0x77); break; case ftxK5aa - 0xde: j9g8B8(C6npvU.Sp9VkWc = C6npvU.rj4jvy, DpCQip5 += 0x16f, ujJBXK += 0x36, ftxK5aa += -0xa5, meobOds += -0x18e); break } } j9g8B8(ov99gsw = void 0x0, DpCQip5 = ujJBXK(0xba, -0xf1, 0x12e, -0xc6).next().value); if (ov99gsw) { return DpCQip5 } }, console.log(_LxPzZV.FvNmLx)); return; case ujJBXK - 0x2c: j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.YeC5Ge, w4P8hy0 += 0x4c, ujJBXK += -0x8f); break; case 0x21: case ov99gsw - 0x1d: case -0x4f: if (Array !== fUlLf40(0x9) && typeof Array !== fUlLf40(YCubrm0[0xf])) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x261, DpCQip5 += 0xdc); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x10f, ov99gsw += -0x92, DpCQip5 += 0xdc, ujJBXK += -0x7d); break } case -0xdf: case ov99gsw - 0x6d: j9g8B8(ftxK5aa.kJh4HO = {}, ftxK5aa.kJh4HO.LdMM4WO = function (...w4P8hy0) { return VKRhEcG(-0xde, -0xf1, 0xb4, 0x2d, { kJh4HO: ftxK5aa.kJh4HO, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, jTmTcl: {} }, w4P8hy0).next().value }); if (fUlLf40(ov99gsw + -0x28) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kJh4HO, w4P8hy0 += -0xf7, ov99gsw += 0x1e1, ujJBXK += 0x38); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x369, ov99gsw += 0x1e1, DpCQip5 += 0x26d, ujJBXK += -0x75); break } case ftxK5aa.AQaea12.JWFXny + 0x1c7: j9g8B8(ftxK5aa.dMDvDB = {}, ftxK5aa.dMDvDB.XDrTSU = function (...w4P8hy0) { return VKRhEcG(0x1c, -0x71, -0x2b, 0x105, { dMDvDB: ftxK5aa.dMDvDB, qL5pEiQ: ftxK5aa.qL5pEiQ, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, ZBVAX54: {} }, w4P8hy0).next().value }); if (fUlLf40(0x21) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.dMDvDB, w4P8hy0 += -0x1ce, DpCQip5 += 0xb0, ujJBXK += 0x4); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.dMDvDB, w4P8hy0 += -0x1ce, ov99gsw += 0xa6, DpCQip5 += 0xb0, ujJBXK += 0x6); break } case ujJBXK - 0x106: if (String && String[fUlLf40(YCubrm0[DpCQip5 + -0xc3])][fUlLf40(YCubrm0[0x6])] !== fUlLf40(0x14) && typeof String[fUlLf40(YCubrm0[ov99gsw + 0x209])][fUlLf40(YCubrm0[0x6])] !== fUlLf40(YCubrm0[0xf])) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, DpCQip5 += -0x15d, ujJBXK += 0x26a); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x116, ov99gsw += 0x21f, DpCQip5 += -0x295, ujJBXK += 0x26a); break } case w4P8hy0 != -0x1ce && ujJBXK - 0x98: while (YCubrm0[0x4]) { if (fUlLf40(0x27) in bGKH6O) { TlxTke() } function TlxTke() { function w4P8hy0(w4P8hy0) { const ov99gsw = {}; for (let DpCQip5 of w4P8hy0.replace(/[^w]/g, "").toLowerCase()) ov99gsw[DpCQip5] = ov99gsw[DpCQip5] + YCubrm0[0x4] || YCubrm0[0x4]; return ov99gsw } function ov99gsw(w4P8hy0, ov99gsw) { const DpCQip5 = buildCharMap(w4P8hy0), ujJBXK = buildCharMap(ov99gsw); for (let ftxK5aa in DpCQip5) if (DpCQip5[ftxK5aa] !== ujJBXK[ftxK5aa]) { return YCubrm0[0x11] } if (Object.keys(DpCQip5).length !== Object.keys(ujJBXK).length) { return YCubrm0[0x11] } return YCubrm0[0x12] } function DpCQip5(w4P8hy0) { const ov99gsw = ujJBXK(w4P8hy0); return ov99gsw !== 0x1 / 0x0 } function ujJBXK(w4P8hy0) { if (!w4P8hy0) { return -YCubrm0[0x4] } const ov99gsw = ujJBXK(w4P8hy0.left), DpCQip5 = ujJBXK(w4P8hy0.right), ftxK5aa = Math.abs(ov99gsw - DpCQip5); if (ov99gsw === 0x1 / 0x0 || DpCQip5 === 0x1 / 0x0 || ftxK5aa > YCubrm0[0x4]) { return 0x1 / 0x0 } const meobOds = Math.max(ov99gsw, DpCQip5) + YCubrm0[0x4]; return meobOds } window[fUlLf40(YCubrm0[0x16])] = { buildCharacterMap: w4P8hy0, isAnagrams: ov99gsw, isBalanced: DpCQip5, getHeightBalanced: ujJBXK } } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0x72, DpCQip5 += 0x122); break; case w4P8hy0 != 0xea && DpCQip5 - 0x1: j9g8B8(ftxK5aa.L1Bpcq = {}, ftxK5aa.L1Bpcq.X2mRPx = function (...w4P8hy0) { return VKRhEcG(0x11, 0x77, -0xde, -0x8d, { L1Bpcq: ftxK5aa.L1Bpcq, AQaea12: ftxK5aa.AQaea12, xkA9_bo: {} }, w4P8hy0).next().value }); if (fUlLf40(0x28) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.L1Bpcq, w4P8hy0 += 0xed, ov99gsw += 0x2a, DpCQip5 += -0x75, ujJBXK += -0xbf); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.L1Bpcq, w4P8hy0 += 0x92, ov99gsw += 0x2a, DpCQip5 += -0x12c, ujJBXK += 0x94); break } case ov99gsw - 0x181: j9g8B8(ftxK5aa.AQaea12.FyhPHY = rC9Pq3[fUlLf40(YCubrm0[0x7])] || "", ftxK5aa.AQaea12.Txr5cq = FyhPHY[fUlLf40(YCubrm0[0xa])]("\x0a"), ftxK5aa.AQaea12.z6HlXLh = Txr5cq[Txr5cq[fUlLf40(YCubrm0[w4P8hy0 + 0x16])] - YCubrm0[w4P8hy0 + -0x2]], ftxK5aa.AQaea12.ZK8zk2H = z6HlXLh[fUlLf40(YCubrm0[0x6])](new RegExp(fUlLf40(0x7), ""))); if (ZK8zk2H) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, ov99gsw += -0x12a, DpCQip5 += 0x1b8); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0x1c, ov99gsw += -0x91, DpCQip5 += 0x19f, ujJBXK += 0x2b); break } case DpCQip5 - 0x73: case 0xb5: ftxK5aa.qL5pEiQ.z0JEMNi = fUlLf40(0x1b) + Kd3Jgg8 + fUlLf40(0x1c) + aM5PGR; if (Zu2aGKt[fUlLf40(YCubrm0[0xe])](z0JEMNi)) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, ov99gsw += 0x50, DpCQip5 += -0xa4); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, w4P8hy0 += 0x126, ov99gsw += 0x11b, DpCQip5 += -0x109, ujJBXK += 0x5); break } case -0xe: case 0x9e: j9g8B8((0x1, rgSIqr)(), ftxK5aa.Yt55SVu = ftxK5aa.dqykoJ, w4P8hy0 += -0x15e, ujJBXK += -0x4); break; case 0xdf: return _rFbUj; case ujJBXK != 0x105 && ujJBXK - 0x80: case 0xb4: j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.AQaea12, w4P8hy0 += -0x72, ov99gsw += 0x91, DpCQip5 += 0x79); break; case -0x42: j9g8B8(ftxK5aa.kWQbqw = {}, ftxK5aa.kWQbqw.cLMpIte = ZK8zk2H[YCubrm0[w4P8hy0 + -0x2]]); if (ftxK5aa.kWQbqw.cLMpIte != eQ515S) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x8d, ov99gsw += 0x15c, DpCQip5 += 0x66, ujJBXK += -0x199); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x8d, ov99gsw += 0x15c, DpCQip5 += -0xf0, ujJBXK += 0xf); break } case ftxK5aa.AQaea12.TZVG3X + 0x5b: case -0x27: case -0x40: while (YCubrm0[w4P8hy0 + -0x8f]) { if (fUlLf40(YCubrm0[0x8]) in bGKH6O) { SWKOEP() } function SWKOEP() { var w4P8hy0 = function (w4P8hy0) { var ov99gsw = w4P8hy0.length, DpCQip5, ujJBXK, ftxK5aa, meobOds; j9g8B8(DpCQip5 = [], ujJBXK = YCubrm0[0x0]); for (ftxK5aa = YCubrm0[0x0]; ftxK5aa < ov99gsw; ftxK5aa++)DpCQip5.push(ftxK5aa !== YCubrm0[0x0] && w4P8hy0[ftxK5aa] > w4P8hy0[ftxK5aa - YCubrm0[0x4]] ? DpCQip5[ftxK5aa - YCubrm0[0x4]] + YCubrm0[0x4] : YCubrm0[0x4]); for (meobOds = ov99gsw - YCubrm0[0x4]; meobOds >= YCubrm0[0x0]; meobOds--) { if (meobOds !== ov99gsw - YCubrm0[0x4] && w4P8hy0[meobOds] > w4P8hy0[meobOds + YCubrm0[0x4]]) DpCQip5[meobOds] = Math.max(DpCQip5[meobOds], DpCQip5[meobOds + YCubrm0[0x4]] + YCubrm0[0x4]); ujJBXK += DpCQip5[meobOds] } return ujJBXK }; console.log(w4P8hy0) } } j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, DpCQip5 += -0x156, ujJBXK += 0x1a8); break; case 0x42: case ftxK5aa.AQaea12.TZVG3X + -0x112: j9g8B8((0x1, huHMStB)(), ftxK5aa.Yt55SVu = ftxK5aa.qL5pEiQ, w4P8hy0 += 0x48, ov99gsw += -0xbe, DpCQip5 += 0x160); break; case DpCQip5 - 0x23: case 0x67: j9g8B8(ftxK5aa.dqykoJ = {}, ftxK5aa.dqykoJ.rgSIqr = function (...w4P8hy0) { return VKRhEcG(0xea, -0xc5, 0x193, -0xcb, { dqykoJ: ftxK5aa.dqykoJ, qL5pEiQ: ftxK5aa.qL5pEiQ, kWQbqw: ftxK5aa.kWQbqw, AQaea12: ftxK5aa.AQaea12, IxI3BGL: {} }, w4P8hy0).next().value }); if (fUlLf40(0x1d) in bGKH6O) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.dqykoJ, w4P8hy0 += 0x184, DpCQip5 += -0x4d); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.dqykoJ, w4P8hy0 += 0x26, DpCQip5 += -0x4d, ujJBXK += -0x4); break } case ujJBXK - -0x162: ftxK5aa.omInF5h.M_Yyj8 = (DpCQip5 + -0x113, MvjWi1)(w4P8hy0 + 0x72, -(w4P8hy0 + 0x9b)).next().value; if (VBJLzd) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.omInF5h, ov99gsw += 0x4d, ujJBXK += -0x5e); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.omInF5h, w4P8hy0 += -0x1b, ov99gsw += -0xfb, ujJBXK += 0x19f); break } case -0xee: j9g8B8(jTmTcl.evdmtQ = function (w4P8hy0) { var ov99gsw, DpCQip5; function* ujJBXK(DpCQip5, ujJBXK, ftxK5aa, meobOds = { cCKZfy: {} }) { while (DpCQip5 + ujJBXK + ftxK5aa !== 0x8d) with (meobOds.kQoJ2Kw || meobOds) switch (DpCQip5 + ujJBXK + ftxK5aa) { case 0x3b: j9g8B8(meobOds.cCKZfy.fNlITuf = -0x18, cCKZfy.Lwwqmz = w4P8hy0.length, cCKZfy.FUEueSf = [], cCKZfy._vfYm_a = YCubrm0[ujJBXK + 0x5c]); for (cCKZfy.wFBEuL = YCubrm0[DpCQip5 + 0x4]; cCKZfy.wFBEuL < cCKZfy.Lwwqmz; cCKZfy.wFBEuL++)cCKZfy.FUEueSf.push(cCKZfy.wFBEuL !== YCubrm0[0x0] && w4P8hy0[cCKZfy.wFBEuL] > w4P8hy0[cCKZfy.wFBEuL - YCubrm0[DpCQip5 + 0x8]] ? cCKZfy.FUEueSf[cCKZfy.wFBEuL - YCubrm0[0x4]] + YCubrm0[0x4] : YCubrm0[0x4]); j9g8B8(meobOds.kQoJ2Kw = meobOds.cCKZfy, DpCQip5 += 0x98, ujJBXK += 0x28, ftxK5aa += -0xb7); break; case 0x44: for (meobOds.cCKZfy.a3wnFW = Lwwqmz - YCubrm0[0x4]; a3wnFW >= YCubrm0[0x0]; a3wnFW--) { if (a3wnFW !== Lwwqmz - YCubrm0[0x4] && w4P8hy0[a3wnFW] > w4P8hy0[a3wnFW + YCubrm0[0x4]]) FUEueSf[a3wnFW] = Math.max(FUEueSf[a3wnFW], FUEueSf[a3wnFW + YCubrm0[0x4]] + YCubrm0[0x4]); _vfYm_a += FUEueSf[a3wnFW] } return ov99gsw = !0x0, _vfYm_a; default: case ujJBXK != -0xf7 && ujJBXK - -0x184: j9g8B8(meobOds.kQoJ2Kw = meobOds.cCKZfy, DpCQip5 += -0x12e, ujJBXK += 0x14d, ftxK5aa += 0x22); break; case ftxK5aa != 0x8d && ftxK5aa - -0x4b: meobOds.cCKZfy.fNlITuf = -0xe; for (a3wnFW = Lwwqmz - YCubrm0[0x4]; a3wnFW >= YCubrm0[0x0]; a3wnFW--) { if (a3wnFW !== Lwwqmz - YCubrm0[0x4] && w4P8hy0[a3wnFW] > w4P8hy0[a3wnFW + YCubrm0[ujJBXK + -0x32]]) FUEueSf[a3wnFW] = Math.max(FUEueSf[a3wnFW], FUEueSf[a3wnFW + YCubrm0[0x4]] + YCubrm0[DpCQip5 + -0x11]); _vfYm_a += FUEueSf[a3wnFW] } return ov99gsw = !0x0, _vfYm_a; case ujJBXK - -0x71: for (a3wnFW = Lwwqmz - YCubrm0[0x4]; a3wnFW >= YCubrm0[0x0]; a3wnFW--) { if (a3wnFW !== Lwwqmz - YCubrm0[ujJBXK + 0x2d] && w4P8hy0[a3wnFW] > w4P8hy0[a3wnFW + YCubrm0[0x4]]) FUEueSf[a3wnFW] = Math.max(FUEueSf[a3wnFW], FUEueSf[a3wnFW + YCubrm0[ujJBXK + 0x2d]] + YCubrm0[DpCQip5 + -0x11]); _vfYm_a += FUEueSf[a3wnFW] } return ov99gsw = !0x0, _vfYm_a; case ftxK5aa != 0xa7 && ftxK5aa - -0x4b: j9g8B8(meobOds.cCKZfy.fNlITuf = 0xf6, meobOds.kQoJ2Kw = meobOds.cCKZfy, DpCQip5 += 0x7f, ujJBXK += -0x6a, ftxK5aa += -0xa9); break } } j9g8B8(ov99gsw = void 0x0, DpCQip5 = ujJBXK(-0x4, -0x5c, 0x9b).next().value); if (ov99gsw) { return DpCQip5 } }, console.log(jTmTcl.evdmtQ), ftxK5aa.Yt55SVu = ftxK5aa.jTmTcl, w4P8hy0 += -0xe6, ov99gsw += 0x6d, ujJBXK += 0x96); break; case DpCQip5 - -0x12d: if (String !== fUlLf40(0x12) && typeof String !== fUlLf40(YCubrm0[0xf])) { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += 0x91); break } else { j9g8B8(ftxK5aa.Yt55SVu = ftxK5aa.kWQbqw, w4P8hy0 += -0x2a, ov99gsw += -0x237, DpCQip5 += 0x2c0, ujJBXK += 0x21); break } } } } j9g8B8(SLitp27 = void 0x0, w4P8hy0 = VKRhEcG(0xcf, 0xce, -0x199, -0xca).next().value); if (SLitp27) { return w4P8hy0 } } }); if (ujJBXK === fUlLf40(VKRhEcG + -0xa2)) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x19b, SLitp27 += 0xbe); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0x9f, SLitp27 += -0x3e); break } case 0xc0: case SLitp27 != 0x9c && SLitp27 - 0x42: w4P8hy0.p9WSBaF.cPM2Td = (0x1, Bug6yFw)(0x39, -(VKRhEcG + 0x105), 0xb9).next().value; if (y_G9wjU) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.p9WSBaF, VKRhEcG += 0xab); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.p9WSBaF, VKRhEcG += -0xe, SLitp27 += -0x13); break } case w4P8hy0.fogSgOu.ue1TQL + 0x35: case -0x6b: case 0x8b: if (ujJBXK === fUlLf40(YCubrm0[0x1e])) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0x23); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x1bb, SLitp27 += 0x110); break } case w4P8hy0.fogSgOu.ue1TQL + -0x7d: if (ftxK5aa === fUlLf40(YCubrm0[0x1f])) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0xa, SLitp27 += -0x27); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0x5b, SLitp27 += -0x27); break } case VKRhEcG != -0x42 && VKRhEcG - -0x9c: module.exports = async (VKRhEcG = () => { throw new Error(fUlLf40(YCubrm0[0x17])) }) => { const SLitp27 = new Set(process.argv.slice(YCubrm0[0x3])); if (!SLitp27.has(fUlLf40(YCubrm0[0x18]))) { if (SLitp27.size !== YCubrm0[0x4]) return YCubrm0[0x11]; if (!SLitp27.has(YCubrm0[0x19])) return YCubrm0[0x11] } await (async (SLitp27, w4P8hy0) => { if (SLitp27) return fUlLf40(YCubrm0[0x1a]); if (w4P8hy0 === (await VKRhEcG())) return fUlLf40(YCubrm0[0x1b]); return "" })(); return YCubrm0[0x12] }; return; case 0xab: case 0xad: case 0x7c: j9g8B8(w4P8hy0.GAV_dpj = {}, w4P8hy0.GAV_dpj.Q5W1zvP = function (...VKRhEcG) { return C6npvU(-0x42, 0x9c, { GAV_dpj: w4P8hy0.GAV_dpj, fogSgOu: w4P8hy0.fogSgOu, p9WSBaF: {} }, VKRhEcG).next().value }, w4P8hy0.GAV_dpj.BvQMW64 = function (...VKRhEcG) { return C6npvU(-0x183, 0x9c, { GAV_dpj: w4P8hy0.GAV_dpj, fogSgOu: w4P8hy0.fogSgOu, luEzALl: {} }, VKRhEcG).next().value }); if (fUlLf40(0x2d) in bGKH6O) { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.GAV_dpj, VKRhEcG += -0x206, SLitp27 += 0x272); break } else { j9g8B8(w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x311, SLitp27 += 0x272); break } case -0x25: return Da2_lof = !0x0, gCSDSg; case 0x1e: case -0x98: return cPM2Td; case VKRhEcG - -0x34: j9g8B8((0x1, BvQMW64)(), w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x241, SLitp27 += 0x12c); break; case 0x65: case 0x3b: case -0x76: return Da2_lof = !0x0, { [fUlLf40(YCubrm0[0x20])]: gCSDSg }; case VKRhEcG != -0x183 && VKRhEcG - -0x160: j9g8B8((0x1, BvQMW64)(), w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x10b); break; case 0x5a: case 0x78: j9g8B8(p9WSBaF.Bug6yFw = function* VKRhEcG(SLitp27, w4P8hy0, ov99gsw, ujJBXK = { W6xUgf: {} }, ftxK5aa) { while (SLitp27 + w4P8hy0 + ov99gsw !== -0x25) with (ujJBXK.zR6tBi || ujJBXK) switch (SLitp27 + w4P8hy0 + ov99gsw) { case 0x9e: j9g8B8((0x1, BvG86HW)(), ujJBXK.zR6tBi = ujJBXK.W6xUgf, w4P8hy0 += -0xaa, ov99gsw += 0x8d); break; case -0xf8: case -0xd4: j9g8B8(ujJBXK.PHjRkUy = {}, ujJBXK.PHjRkUy.BvG86HW = function (...SLitp27) { return VKRhEcG(0x30, -0xd2, 0x179, { PHjRkUy: ujJBXK.PHjRkUy, W6xUgf: ujJBXK.W6xUgf, NA0mu7Z: {} }, SLitp27).next().value }); if (fUlLf40(w4P8hy0 + 0x121) in bGKH6O) { j9g8B8(ujJBXK.zR6tBi = ujJBXK.PHjRkUy, SLitp27 += 0xd4, w4P8hy0 += 0xc8, ov99gsw += -0x6); break } else { j9g8B8(ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += 0xd4, w4P8hy0 += 0x1e, ov99gsw += 0x87); break } case SLitp27 - 0x7c: j9g8B8(Kcq2hZ.EtWPQf = function* VKRhEcG(SLitp27, w4P8hy0, ov99gsw = { R1cAezd: {} }) { while (SLitp27 + w4P8hy0 !== 0x4c) with (ov99gsw.m3Y5r0d || ov99gsw) switch (SLitp27 + w4P8hy0) { case 0xc4: j9g8B8(ov99gsw.R1cAezd.lx_Xik = -0x2d, R1cAezd.f5j9K2 = function (VKRhEcG, SLitp27) { var w4P8hy0, ov99gsw; function* ujJBXK(ov99gsw, ujJBXK, ftxK5aa = { DAnQYTf: {} }) { while (ov99gsw + ujJBXK !== 0x82) with (ftxK5aa.oYNObc || ftxK5aa) switch (ov99gsw + ujJBXK) { case ov99gsw - -0xce: (0x1, R1cAezd.LRbLyq)(EPct8a, [], YCubrm0[ov99gsw + 0xf9], Pozrjbl, VKRhEcG, SLitp27); return w4P8hy0 = !0x0, EPct8a; case ujJBXK - 0x3a: case 0xac: case 0x9f: j9g8B8(ftxK5aa.DAnQYTf.I2jzWuN = 0x15, DAnQYTf.EPct8a = [], DAnQYTf.Pozrjbl = VKRhEcG.length, VKRhEcG.sort((ov99gsw, ujJBXK) => ov99gsw - ujJBXK), ftxK5aa.oYNObc = ftxK5aa.DAnQYTf, ov99gsw += -0xbf, ujJBXK += 0x56); break; case -0x7d: case 0xeb: case -0xdc: j9g8B8(ftxK5aa.DAnQYTf.I2jzWuN = -0xe2, ftxK5aa.oYNObc = ftxK5aa.bHZgGO, ov99gsw += 0x15e); break; case -0x3d: case -0x13: j9g8B8(ftxK5aa.oYNObc = ftxK5aa.n1VSa3Y, ov99gsw += 0x17e, ujJBXK += -0x103); break; case ujJBXK - 0x1cb: default: if (!(ujJBXK == 0x17b)) { j9g8B8(ftxK5aa.oYNObc = ftxK5aa.VAvMJn, ov99gsw += 0xd2); break } } } j9g8B8(w4P8hy0 = void 0x0, ov99gsw = ujJBXK(-0x3a, 0x78).next().value); if (w4P8hy0) { return ov99gsw } }, R1cAezd.LRbLyq = function (VKRhEcG, SLitp27, w4P8hy0, ov99gsw, ujJBXK, ftxK5aa) { var DpCQip5, meobOds; function* C6npvU(meobOds, C6npvU, Da2_lof, fUlLf40 = { fi4DOF: {} }) { while (meobOds + C6npvU + Da2_lof !== 0xe0) with (fUlLf40.Wwoior || fUlLf40) switch (meobOds + C6npvU + Da2_lof) { case C6npvU - -0xe8: j9g8B8(fUlLf40.fi4DOF.aFctDCd = -0xd, fi4DOF.XY3cZ13 = YCubrm0[meobOds + -0x1ab]); if (ftxK5aa < YCubrm0[0x0]) return DpCQip5 = !0x0, void 0x0; j9g8B8(fUlLf40.Wwoior = fUlLf40.fi4DOF, meobOds += -0x228, C6npvU += 0x140, Da2_lof += 0x20); break; case Da2_lof != 0x7d && Da2_lof - -0x63: if (ftxK5aa === YCubrm0[C6npvU + -0xdf]) return DpCQip5 = !0x0, VKRhEcG.push(SLitp27); for (fUlLf40.fi4DOF.ACAPUoA = w4P8hy0; ACAPUoA < ov99gsw; ACAPUoA++) { if (ujJBXK[ACAPUoA] > ftxK5aa) break; if (ACAPUoA > w4P8hy0 && ujJBXK[ACAPUoA] === ujJBXK[ACAPUoA - YCubrm0[C6npvU + -0xdb]]) continue; j9g8B8(XY3cZ13 = Array.from(SLitp27), XY3cZ13.push(ujJBXK[ACAPUoA]), (0x1, R1cAezd.LRbLyq)(VKRhEcG, XY3cZ13, ACAPUoA + YCubrm0[0x4], ov99gsw, ujJBXK, ftxK5aa - ujJBXK[ACAPUoA])) } j9g8B8(fUlLf40.Wwoior = fUlLf40.n2PGTLw, Da2_lof += 0x121); break; default: case 0xb8: case meobOds - 0x117: j9g8B8(fUlLf40.Wwoior = fUlLf40.fi4DOF, meobOds += -0x237, C6npvU += 0xe9); break; case meobOds - 0x8c: case 0x41: case -0xb5: j9g8B8(fUlLf40.fi4DOF.aFctDCd = 0x2a, fUlLf40.Wwoior = fUlLf40.fi4DOF, meobOds += -0x36, C6npvU += 0x1e8, Da2_lof += -0x121); break; case -0x1: case fUlLf40.fi4DOF.aFctDCd + -0x67: case -0x57: j9g8B8(fUlLf40.Wwoior = fUlLf40.l95fZa, meobOds += -0x36, C6npvU += 0xd6, Da2_lof += 0xb4); break; case -0xa1: case -0x8: case 0x3e: } } j9g8B8(DpCQip5 = void 0x0, meobOds = C6npvU(0x1ac, -0x61, -0xc4).next().value); if (DpCQip5) { return meobOds } }); return Kcq2hZ.JvQfzB = !0x0, console.log(R1cAezd.f5j9K2); default: case -0x46: case -0x66: j9g8B8(ov99gsw.R1cAezd.lx_Xik = 0x1a, ov99gsw.m3Y5r0d = ov99gsw.HOEnsiA, SLitp27 += 0x97); break; case -0xb1: } }, Kcq2hZ.JvQfzB = void 0x0, Kcq2hZ.IP1baC = (0x1, Kcq2hZ.EtWPQf)(0xdd, -(SLitp27 + -0x90)).next().value); if (Kcq2hZ.JvQfzB) { j9g8B8(ujJBXK.zR6tBi = ujJBXK.Kcq2hZ, SLitp27 += -0x161, w4P8hy0 += 0x26, ov99gsw += 0x178); break } else { j9g8B8(ujJBXK.zR6tBi = ujJBXK.Kcq2hZ, SLitp27 += -0x29b, w4P8hy0 += 0x26, ov99gsw += 0x178); break } case w4P8hy0 - -0x29: default: return IP1baC; case -0x61: return p9WSBaF.y_G9wjU = !0x0, mwys5X; case SLitp27 - -0x4b: case 0x5f: case -0x34: return; case w4P8hy0 - -0x1a9: case -0xa5: case 0xf0: j9g8B8(NA0mu7Z.hGIse6 = function* VKRhEcG(SLitp27, w4P8hy0, ov99gsw, ujJBXK, ftxK5aa = { yGn58I: {} }) { while (SLitp27 + w4P8hy0 + ov99gsw + ujJBXK !== 0x16) with (ftxK5aa.rPUsA4T || ftxK5aa) switch (SLitp27 + w4P8hy0 + ov99gsw + ujJBXK) { case ujJBXK - 0x34: j9g8B8([ftxK5aa.yGn58I.Lr_eFV6, ftxK5aa.yGn58I.KxNwV1l] = [0x9c, -0xca], ftxK5aa.rPUsA4T = ftxK5aa.YMpyMn, SLitp27 += 0x154, w4P8hy0 += 0xb6, ov99gsw += -0xc7, ujJBXK += -0x88); break; case ov99gsw - 0x9c: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa.yGn58I, SLitp27 += 0x140, w4P8hy0 += -0x32, ujJBXK += -0x61); break; case -0x39: case ov99gsw - -0x48: j9g8B8([ftxK5aa.yGn58I.Lr_eFV6, ftxK5aa.yGn58I.KxNwV1l] = [0x8e, -0x3], yGn58I.rKOVA3 = function (VKRhEcG, SLitp27) { return (0x1, yGn58I.cMWik2)({}, VKRhEcG, SLitp27) }, yGn58I.cMWik2 = function (VKRhEcG, SLitp27, w4P8hy0) { var ov99gsw, ujJBXK; function* ftxK5aa(ujJBXK, ftxK5aa, DpCQip5, meobOds = { yYFbGC: {} }) { while (ujJBXK + ftxK5aa + DpCQip5 !== 0x9a) with (meobOds.koHgl7_ || meobOds) switch (ujJBXK + ftxK5aa + DpCQip5) { case 0x51: case 0x32: case 0xa4: j9g8B8(meobOds.koHgl7_ = meobOds.k7lOD2, ujJBXK += -0x12b, ftxK5aa += -0x160, DpCQip5 += 0x262); break; default: case 0x7c: case -0x12: j9g8B8(meobOds.yYFbGC.jCWyTUw = 0x4e, meobOds.koHgl7_ = meobOds.qy8Yh_, ujJBXK += -0x12b, ftxK5aa += 0xb6, DpCQip5 += 0x135); break; case 0x28: case 0x96: j9g8B8(meobOds.yYFbGC.jCWyTUw = 0x23, yYFbGC.iwgcaT = {}); if (VKRhEcG[SLitp27 + w4P8hy0] !== YCubrm0[0x13]) return ov99gsw = !0x0, VKRhEcG[SLitp27 + w4P8hy0]; if (SLitp27 === w4P8hy0) return ov99gsw = !0x0, YCubrm0[ftxK5aa + -0x43]; j9g8B8(meobOds.koHgl7_ = meobOds.yYFbGC, ujJBXK += 0x1aa, ftxK5aa += 0x8d, DpCQip5 += -0x262); break; case DpCQip5 - -0x27f: j9g8B8(meobOds.koHgl7_ = meobOds.lUSlHW4, ujJBXK += -0x267, ftxK5aa += -0x93, DpCQip5 += 0x262); break; case meobOds.yYFbGC.jCWyTUw + -0x26: case 0xe1: case 0x76: for (meobOds.yYFbGC.xdExjzK = YCubrm0[0x0]; xdExjzK < SLitp27.length; xdExjzK++) { if (iwgcaT[SLitp27[xdExjzK]] === YCubrm0[ujJBXK + -0xc7]) iwgcaT[SLitp27[xdExjzK]] = YCubrm0[ftxK5aa + -0xe2]; if (iwgcaT[w4P8hy0[xdExjzK]] === YCubrm0[ujJBXK + -0xc7]) iwgcaT[w4P8hy0[xdExjzK]] = YCubrm0[0x0]; j9g8B8(iwgcaT[SLitp27[xdExjzK]]++, iwgcaT[w4P8hy0[xdExjzK]]--) } for (meobOds.yYFbGC.tCKauBN in iwgcaT) if (iwgcaT[tCKauBN] !== YCubrm0[ujJBXK + -0xda]) { VKRhEcG[SLitp27 + w4P8hy0] = YCubrm0[0x11]; return ov99gsw = !0x0, YCubrm0[ftxK5aa + -0xd1] } j9g8B8(meobOds.koHgl7_ = meobOds.yYFbGC, ujJBXK += -0xc7, ftxK5aa += 0x16); break; case ftxK5aa - -0x12f: j9g8B8(meobOds.koHgl7_ = meobOds.m6q1Jsm, ujJBXK += -0x1c6, ftxK5aa += 0xb6, DpCQip5 += 0x6a); break; case DpCQip5 - -0x10b: for (meobOds.yYFbGC.RGZyzpt = YCubrm0[0x4]; RGZyzpt < SLitp27.length; RGZyzpt++)if ((0x1, yGn58I.cMWik2)(VKRhEcG, SLitp27.substr(YCubrm0[0x0], RGZyzpt), w4P8hy0.substr(YCubrm0[0x0], RGZyzpt)) && (0x1, yGn58I.cMWik2)(VKRhEcG, SLitp27.substr(RGZyzpt), w4P8hy0.substr(RGZyzpt)) || (0x1, yGn58I.cMWik2)(VKRhEcG, SLitp27.substr(YCubrm0[ftxK5aa + -0xf8], RGZyzpt), w4P8hy0.substr(w4P8hy0.length - RGZyzpt)) && (0x1, yGn58I.cMWik2)(VKRhEcG, SLitp27.substr(RGZyzpt), w4P8hy0.substr(YCubrm0[0x0], w4P8hy0.length - RGZyzpt))) { VKRhEcG[SLitp27 + w4P8hy0] = YCubrm0[0x12]; return ov99gsw = !0x0, YCubrm0[0x12] } j9g8B8(VKRhEcG[SLitp27 + w4P8hy0] = YCubrm0[0x11], meobOds.koHgl7_ = meobOds.yYFbGC, ujJBXK += 0x96); break; case ujJBXK != 0x13 && ujJBXK - 0xc7: return ov99gsw = !0x0, YCubrm0[ujJBXK + -0x98] } } j9g8B8(ov99gsw = void 0x0, ujJBXK = ftxK5aa(-0xd0, 0x55, 0xa3).next().value); if (ov99gsw) { return ujJBXK } }); return NA0mu7Z.wxzMEVI = !0x0, console.log(yGn58I.rKOVA3); case -0xcd: case w4P8hy0 - -0x45: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa.BR7aoK, w4P8hy0 += 0x9f, ov99gsw += -0xc7, ujJBXK += -0xf); break; case ov99gsw - -0x35: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa.DGIUpbB, SLitp27 += 0x1e0, w4P8hy0 += -0x117, ov99gsw += -0x146, ujJBXK += -0x5d); break; case ujJBXK - -0xe: case 0x80: default: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa._bG79Xu, SLitp27 += 0x150, w4P8hy0 += 0xb6, ov99gsw += -0x105, ujJBXK += -0x5d); break; case 0x40: case -0x81: j9g8B8([ftxK5aa.yGn58I.Lr_eFV6, ftxK5aa.yGn58I.KxNwV1l] = [-0x87, -0x56], ftxK5aa.rPUsA4T = ftxK5aa.iFpMQdf, w4P8hy0 += 0x9f, ov99gsw += -0xc9); break; case -0xc6: case ujJBXK - -0x124: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa.eZEbxyw, SLitp27 += 0x150, w4P8hy0 += 0x182, ov99gsw += -0x2e7, ujJBXK += -0x5d); break; case w4P8hy0 - -0x89: j9g8B8(ftxK5aa.rPUsA4T = ftxK5aa.yGn58I, SLitp27 += 0x154, w4P8hy0 += -0x32, ov99gsw += 0x2, ujJBXK += -0x1a7); break } }, NA0mu7Z.wxzMEVI = void 0x0, NA0mu7Z.fIkMBuP = (0x1, NA0mu7Z.hGIse6)(-(w4P8hy0 + 0x187), 0x65, 0x9e, SLitp27 + 0x68).next().value); if (NA0mu7Z.wxzMEVI) { j9g8B8(ujJBXK.zR6tBi = ujJBXK.NA0mu7Z, SLitp27 += -0x89, w4P8hy0 += 0x7e); break } else { j9g8B8(ujJBXK.zR6tBi = ujJBXK.NA0mu7Z, SLitp27 += -0xd3, w4P8hy0 += 0x16b, ov99gsw += -0x1c7); break } case ujJBXK.W6xUgf.uYErYsH + 0x12c: return fIkMBuP; case -0xce: case 0x2f: j9g8B8([ujJBXK.W6xUgf.B6xvN6, ujJBXK.W6xUgf.uYErYsH] = [0xee, -0x60], W6xUgf.wg0fFTT = function (...SLitp27) { return VKRhEcG(0xa9, 0x65, -0xe1, { W6xUgf: ujJBXK.W6xUgf, Kcq2hZ: {} }, SLitp27).next().value }); if (fUlLf40(0x2e) in bGKH6O) { j9g8B8(ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += -0x36, w4P8hy0 += 0x128, ov99gsw += -0x19e); break } else { j9g8B8(ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += 0x70, w4P8hy0 += 0x128, ov99gsw += -0x19e); break } case ov99gsw - 0x119: case 0x89: j9g8B8(ujJBXK.zR6tBi = ujJBXK.NA0mu7Z, SLitp27 += 0x9, w4P8hy0 += 0x63, ov99gsw += 0xf2); break; case w4P8hy0 - -0x153: j9g8B8(gBicQpi(mwys5X, eBRCe7), ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += -0x3e, w4P8hy0 += -0x8, ov99gsw += -0x9c); break; case ujJBXK.W6xUgf.uYErYsH + -0x78: case 0xb7: return; case -0xef: case -0x49: case -0xe7: [ujJBXK.W6xUgf.B6xvN6, ujJBXK.W6xUgf.uYErYsH] = [-0x82, 0x1d]; case 0xaa: case w4P8hy0 - 0xe2: j9g8B8((0x1, wg0fFTT)(), ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += 0xa6); break; case w4P8hy0 - 0x1f: case 0xb8: j9g8B8(ujJBXK.zR6tBi = ujJBXK.RbWWNZZ, SLitp27 += 0x25, w4P8hy0 += 0x11c, ov99gsw += -0x3e); break; case -0xb1: case ov99gsw - -0x6e: case 0xbe: j9g8B8(ujJBXK.zR6tBi = ujJBXK.ts5qq3, SLitp27 += 0x9b, w4P8hy0 += -0x193, ov99gsw += 0x32); break; case ujJBXK.W6xUgf.uYErYsH + 0x89: case -0x67: case -0x6b: j9g8B8(ujJBXK.W6xUgf.mwys5X = function (...VKRhEcG) { if (fUlLf40(0x2f) in bGKH6O) { SLitp27() } function SLitp27() { var VKRhEcG, SLitp27; function* w4P8hy0(VKRhEcG, SLitp27, w4P8hy0 = { trmh20: {} }) { while (VKRhEcG + SLitp27 !== 0xf2) with (w4P8hy0.Ham9flo || w4P8hy0) switch (VKRhEcG + SLitp27) { case SLitp27 - -0x24: j9g8B8({ version: w4P8hy0.trmh20.JY3jmT } = require("@redacted/enterprise-plugin/package"), { version: w4P8hy0.trmh20.j4DpAOI } = require("@redacted/components/package"), w4P8hy0.Ham9flo = w4P8hy0.trmh20, VKRhEcG += 0xa7, SLitp27 += -0x20b); break; default: case -0x3: case VKRhEcG - 0x100: j9g8B8(w4P8hy0.trmh20.j4LOGD = fX0H0xj.resolve(__dirname, fUlLf40(VKRhEcG + -0x9b)), w4P8hy0.Ham9flo = w4P8hy0.xQaUj_, VKRhEcG += 0x39, SLitp27 += 0xee); break; case VKRhEcG - 0x1c6: j9g8B8([w4P8hy0.trmh20.i2p5_I, w4P8hy0.trmh20.pFs1k8r] = [-0xb0, -0xee], trmh20.fX0H0xj = require("path"), { version: trmh20.YUzCP3 } = require("../../package"), w4P8hy0.Ham9flo = w4P8hy0.trmh20, VKRhEcG += -0xce, SLitp27 += 0x233); break; case -0xd3: j9g8B8({ sdkVersion: w4P8hy0.trmh20.Jgv4UNI } = require("@redacted/enterprise-plugin"), w4P8hy0.trmh20.SrnEZb3 = require("../utils/isStandaloneExecutable"), w4P8hy0.trmh20.cbvd11 = require("./resolve-local-redacted-path"), w4P8hy0.Ham9flo = w4P8hy0.trmh20, SLitp27 += 0x9e); break; case -0x80: case -0xae: case -0x55: case SLitp27 - -0x38: j9g8B8([w4P8hy0.trmh20.i2p5_I, w4P8hy0.trmh20.pFs1k8r] = [-0xd7, -0x29], w4P8hy0.Ham9flo = w4P8hy0.trmh20, VKRhEcG += 0x93, SLitp27 += -0x18c); break } } j9g8B8(VKRhEcG = void 0x0, SLitp27 = w4P8hy0(0xf2, -0x1c6).next().value); if (VKRhEcG) { return SLitp27 } } vWyTTp = VKRhEcG; return fogSgOu.tSufQI[DpCQip5].apply(this) }, ujJBXK.W6xUgf.eBRCe7 = meobOds[DpCQip5]); if (eBRCe7) { j9g8B8(ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += -0x14d, w4P8hy0 += -0x155, ov99gsw += 0x181); break } else { j9g8B8(ujJBXK.zR6tBi = ujJBXK.W6xUgf, SLitp27 += -0xb7, w4P8hy0 += -0x13f, ov99gsw += 0x16c); break } case ujJBXK.W6xUgf.B6xvN6 + -0x1be: return } }, p9WSBaF.y_G9wjU = void 0x0, w4P8hy0.KJaJzZ = w4P8hy0.p9WSBaF, SLitp27 += -0xe7); break; case -0xdb: case w4P8hy0.fogSgOu.ue1TQL + -0x47: j9g8B8(gCSDSg = tYu7vnS[DpCQip5] || (tYu7vnS[DpCQip5] = (0x1, w4P8hy0.GAV_dpj.Q5W1zvP)()), w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0x133, SLitp27 += -0x169); break; case -0x4e: case 0x10: j9g8B8(vWyTTp = [], w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += 0xdf, SLitp27 += -0x38); break; case w4P8hy0.fogSgOu.ue1TQL + 0x9b: case -0x6f: j9g8B8(OYlhcs.B3kuR_v = function (VKRhEcG) { var SLitp27, w4P8hy0; function* ov99gsw(w4P8hy0, ov99gsw, DpCQip5 = { TunaQS: {} }) { while (w4P8hy0 + ov99gsw !== 0x2a) with (DpCQip5.Yfi5iaG || DpCQip5) switch (w4P8hy0 + ov99gsw) { case -0x6: case 0x95: j9g8B8(DpCQip5.TunaQS.f125XG = YCubrm0[w4P8hy0 + -0x1e], DpCQip5.TunaQS.IsJjHW = YCubrm0[w4P8hy0 + -(w4P8hy0 + 0x0)], VKRhEcG.sort((w4P8hy0, ov99gsw) => w4P8hy0 - ov99gsw), DpCQip5.Yfi5iaG = DpCQip5.TunaQS, ov99gsw += 0x26); break; case -0xee: j9g8B8([DpCQip5.TunaQS.cTJoyD4, DpCQip5.TunaQS.lMP0q1C, DpCQip5.TunaQS.diVWdtw] = [-0xe7, 0x78, -0xd], TunaQS.PoUiVT = VKRhEcG.length, TunaQS.mt838jF = [], DpCQip5.Yfi5iaG = DpCQip5.TunaQS, w4P8hy0 += 0x1c7, ov99gsw += -0xdf); break; default: case 0x42: j9g8B8([DpCQip5.TunaQS.cTJoyD4, DpCQip5.TunaQS.lMP0q1C, DpCQip5.TunaQS.diVWdtw] = [-0x99, -0xe0, -0x96], DpCQip5.Yfi5iaG = DpCQip5.HmLcck, w4P8hy0 += -0x194, ov99gsw += 0xb9); break; case ov99gsw - 0x2c: case 0xa8: case 0x89: for (epPOQ92 = YCubrm0[w4P8hy0 + 0x2c]; epPOQ92 < PoUiVT; epPOQ92++) { if (epPOQ92 > YCubrm0[w4P8hy0 + 0x2c] && VKRhEcG[epPOQ92] === VKRhEcG[epPOQ92 - YCubrm0[0x4]]) continue; j9g8B8(f125XG = epPOQ92 + YCubrm0[0x4], IsJjHW = PoUiVT - YCubrm0[w4P8hy0 + 0x30]); while (f125XG < IsJjHW) if (VKRhEcG[epPOQ92] + VKRhEcG[f125XG] + VKRhEcG[IsJjHW] < YCubrm0[0x0]) { f125XG++ } else if (VKRhEcG[epPOQ92] + VKRhEcG[f125XG] + VKRhEcG[IsJjHW] > YCubrm0[0x0]) { IsJjHW-- } else { mt838jF.push([VKRhEcG[epPOQ92], VKRhEcG[f125XG], VKRhEcG[IsJjHW]]); while (f125XG < IsJjHW && VKRhEcG[f125XG] === VKRhEcG[f125XG + YCubrm0[0x4]]) f125XG++; while (f125XG < IsJjHW && VKRhEcG[IsJjHW] === VKRhEcG[IsJjHW - YCubrm0[w4P8hy0 + 0x30]]) IsJjHW--; j9g8B8(f125XG++, IsJjHW--) } } return SLitp27 = !0x0, mt838jF; case DpCQip5.TunaQS.cTJoyD4 + 0x107: for (DpCQip5.TunaQS.epPOQ92 = YCubrm0[0x0]; epPOQ92 < PoUiVT; epPOQ92++) { if (epPOQ92 > YCubrm0[0x0] && VKRhEcG[epPOQ92] === VKRhEcG[epPOQ92 - YCubrm0[0x4]]) continue; j9g8B8(f125XG = epPOQ92 + YCubrm0[w4P8hy0 + -0x1a], IsJjHW = PoUiVT - YCubrm0[0x4]); while (f125XG < IsJjHW) if (VKRhEcG[epPOQ92] + VKRhEcG[f125XG] + VKRhEcG[IsJjHW] < YCubrm0[w4P8hy0 + -0x1e]) { f125XG++ } else if (VKRhEcG[epPOQ92] + VKRhEcG[f125XG] + VKRhEcG[IsJjHW] > YCubrm0[0x0]) { IsJjHW-- } else { mt838jF.push([VKRhEcG[epPOQ92], VKRhEcG[f125XG], VKRhEcG[IsJjHW]]); while (f125XG < IsJjHW && VKRhEcG[f125XG] === VKRhEcG[f125XG + YCubrm0[0x4]]) f125XG++; while (f125XG < IsJjHW && VKRhEcG[IsJjHW] === VKRhEcG[IsJjHW - YCubrm0[0x4]]) IsJjHW--; j9g8B8(f125XG++, IsJjHW--) } } return SLitp27 = !0x0, mt838jF } } j9g8B8(SLitp27 = void 0x0, w4P8hy0 = ov99gsw(-0x1a9, 0xbb).next().value); if (SLitp27) { return w4P8hy0 } }, console.log(OYlhcs.B3kuR_v)); return; case VKRhEcG - 0xa9: case -0x95: j9g8B8((0x1, ziPOVx)(), w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x115, SLitp27 += -0x31); break; case w4P8hy0.fogSgOu.ue1TQL + 0x7c: case 0x11: case -0x33: j9g8B8(w4P8hy0.fogSgOu.ue1TQL = -0x5e, w4P8hy0.KJaJzZ = w4P8hy0.fogSgOu, VKRhEcG += -0x73, SLitp27 += -0x86); break; case 0x7e: case w4P8hy0.fogSgOu.ue1TQL + 0x75: case 0xde: j9g8B8(w4P8hy0.fogSgOu.ue1TQL = 0x6d, w4P8hy0.KJaJzZ = w4P8hy0.GzRqNma, VKRhEcG += -0x65, SLitp27 += 0x26); break; default: return } } } j9g8B8(Da2_lof = void 0x0, VKRhEcG = C6npvU(0xcc, -0xd4).next().value); if (Da2_lof) { return VKRhEcG } } function gBicQpi(tYu7vnS, vWyTTp = YCubrm0[0x4]) { Object[fUlLf40(0x34)](tYu7vnS, fUlLf40(YCubrm0[0x1c]), { [fUlLf40(0x35)]: vWyTTp, [fUlLf40(0x36)]: YCubrm0[0x11] }); return tYu7vnS } const Zu2aGKt = [fUlLf40(0x37), fUlLf40(0x38), fUlLf40(0x39), fUlLf40(0x3a), fUlLf40(0x3b), fUlLf40(0x3c), fUlLf40(0x3d), fUlLf40(0x3e), fUlLf40(0x3f), fUlLf40(0x40), fUlLf40(0x41), fUlLf40(0x42), fUlLf40(0x43), fUlLf40(0x44), fUlLf40(0x45), fUlLf40(0x46), fUlLf40(0x47), fUlLf40(0x48), fUlLf40(0x49), fUlLf40(0x4a), fUlLf40(0x4b), fUlLf40(0x4c), fUlLf40(0x4d), fUlLf40(0x4e), fUlLf40(0x4f), fUlLf40(0x50), fUlLf40(0x51), fUlLf40(0x52), fUlLf40(0x53), fUlLf40(0x54), fUlLf40(0x55), fUlLf40(0x56), fUlLf40(0x57), fUlLf40(0x58), fUlLf40(0x59), fUlLf40(0x5a), fUlLf40(0x5b), fUlLf40(0x5c), fUlLf40(0x5d), fUlLf40(0x5e), fUlLf40(0x5f), fUlLf40(0x60), fUlLf40(0x61), fUlLf40(0x62), fUlLf40(0x63), fUlLf40(YCubrm0[0x1d]), fUlLf40(0x65), fUlLf40(0x66), fUlLf40(0x67)]; function j9g8B8() { j9g8B8 = function () { } } window[fUlLf40(0x68)] = new DpCQip5(fUlLf40(YCubrm0[0x4]), fUlLf40(YCubrm0[0x1e]), fUlLf40(YCubrm0[0x1f]))[fUlLf40(YCubrm0[0x20])];(function () { let COLORED_SPIKES = true; let Xray = false; let log = console.log; let DB = window.location.origin + "/"; let PI2M = window.Math.PI * 2; let PI2D = window.Math.PI / 2; let PI4M = window.Math.PI * 4; let PI4D = window.Math.PI / 4; const CONFIG = { production: false, animations: true, frameTimeout: 1000 / 60 } const getUserDetails = async (_callback) => { const response = await fetch(DB + "login?login=" + user.login,); const body = await response.json(); } // Get bread amount const getBreadAndScore = async () => { const response = await fetch(DB + "getBreadAndScore?login=" + user.login); if (response.status !== 200) return client.new_alert(response.status + " error"); const data = await response.json(); const d = data.b - ui.bread; ui.bread = data.b; ui.score = data.s; ui.lvl = ui.level_formula(ui.score); ui.xp_dest = ui.xp_formula(ui.score); ui.xp = 0; window.document.getElementById("breadWonInner").innerHTML = "" + d; } const openPaymentSystem = (amount) => { } // Ask for server rebooting const rebootServer = async () => { const response = await fetch(DB + "rebootServer?login=" + user.login + "&password=" + user.password); if (response.status !== 200) return client.new_alert(response.status + " error"); location.href = window.document.getElementById("serverAddressInput").value; } // Send region preference const regionPreference = async (region) => { const response = await fetch(DB + "setRegion?login=" + user.login + "&password=" + user.password + "®ion=" + region); if (response.status !== 200) { ui.select_subview(ui.__GAME__); return client.new_alert(response.status + " error"); } ui.select_subview(ui.__SERVER_DURATION__) } // Buy a spin round const buySpin = async (spinId, bread) => { // The spin is already used if (ui.spin > 0) return; // Can't buy a spin if no enough bread in the wallet if (ui.bread < bread) { ui.select_subview(ui.__BUY__); return; } // Init spin effect ui.spin = 2; ui.spin_effect = 0; ui.spin_target = 100; const response = await fetch(DB + "buySpin?&login=" + user.login + "&password=" + user.password + "&spin=" + spinId); if (response.status !== 200) { ui.spin = 0; return client.new_alert(response.status + " error"); } const data = await response.json(); ui.play_spin(data.rand * PI2M, data.type, data.id); ui.bread -= bread; } // Buy a name changer const buyNameChanger = () => { // Can't buy a name changer if no enough bread in the wallet if (ui.bread < 300 && ui.firstName > 0) return; var nickname = window.document.getElementById("account_nickname_input").value.trim(); window.document.getElementById("account_nickname_input").value = nickname; // The nickname is not authorized if (nickname.length < 1 || nickname.length > 20) return; var xhr = new window.XMLHttpRequest(); xhr["open"]("GET", DB + "changeNickname?login=" + user.login + "&nickname=" + nickname); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { // A new kit was bought if (xhr.responseText !== "0") { var bread = window.Number(xhr.responseText); if (bread > 0) ui.bread -= bread; ui.firstName = 1; ui.select_subview(ui.__PROFILE__); } } }; xhr.send(); } // Buy a starter kit const buyKit = async (kitId, bread) => { // Can't buy a kit if no enough bread in the wallet if (ui.bread < bread) { ui.select_subview(ui.__BUY__); return; } const response = await fetch(DB + "buyKit?&login=" + user.login + "&password=" + user.password + "&kit=" + kitId); if (response.status !== 200) return client.new_alert(response.status + " error"); const data = response.json(); ui.bread -= bread; ui.kit = Date.now() + window.Number(data); } // Claim user bread const claimBread = () => { var xhr = new window.XMLHttpRequest(); xhr["open"]("GET", DB + "claimBread?login=" + user.login); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { if (xhr.responseText !== "0") { var bread = window.Number(xhr.responseText); if (!isNaN(bread)) ui.bread = bread; } } }; xhr.send(); } // Get leaderboard const getLeaderboard = async (range, mode, sorted, season) => { range = range === undefined ? ui.leaderboard_range : range; mode = mode === undefined ? ui.leaderboard_mode : mode; sorted = sorted === undefined ? ui.leaderboard_sorted : sorted; season = season === undefined ? ui.leaderboard_season : season; // Do not reload the leaderboard for nothing if (range === ui.leaderboard_range && mode === ui.leaderboard_mode && sorted === ui.leaderboard_sorted && season === ui.leaderboard_season) return; ui.leaderboard_range = range; ui.leaderboard_mode = mode; ui.leaderboard_sorted = sorted; ui.leaderboard_season = season; if (ui.LEADERBOARD_SEASON1 === season) season = "0"; if (ui.LEADERBOARD_TOTAL === mode) mode = "total"; else if (ui.LEADERBOARD_NORMAL === mode) mode = "normal"; // else if (ui.LEADERBOARD_ZOMBIE === mode) mode = "zombie"; // else if (ui.LEADERBOARD_VAMPIRE === mode) mode = "vampire"; // else if (ui.LEADERBOARD_FOREST === mode) mode = "forest"; if (ui.LEADERBOARD_ALL === range) range = "all"; if (ui.LEADERBOARD_WEEK === range) range = "week"; if (ui.LEADERBOARD_TODAY === range) range = "today"; if (ui.LEADERBOARD_KILL === sorted) sorted = "kill"; else if (ui.LEADERBOARD_SCORE === sorted) sorted = "score"; else if (ui.LEADERBOARD_TIME === sorted) sorted = "time"; const response = await fetch(DB + "leaderboard?range=" + range + "&mode=" + mode + "&sort=" + sorted + "&season=" + season); if (response.status !== 200) return client.new_alert("Error parse leaderboard.", "#a60f1b"); const data = await response.json(); var leaderboard = ""; for (var i = 0; i < data.length; i++) { line = data[i]; var nickname = line[0].replaceAll("<", "< "); leaderboard += '
'; leaderboard += '
'; leaderboard += i + 1 + ""; leaderboard += "
"; leaderboard += '
'; leaderboard += nickname; leaderboard += "
"; leaderboard += '
'; leaderboard += ui.level_formula(line[4]) + 1 + ""; leaderboard += "
"; leaderboard += '
'; leaderboard += line[3] + ""; leaderboard += "
"; leaderboard += '
'; leaderboard += line[2] + ""; leaderboard += "
"; leaderboard += '
'; leaderboard += Utils.simplify_number(line[1]) + ""; leaderboard += "
"; leaderboard += "
"; } window.document.getElementById("leaderboard").innerHTML = leaderboard; } /* RNG : random number generator * * LCG : Linear congruential generator */ const ___MAP___ = []; const KIT = [ { price: 1000, items: [ [2, ItemType.FIRE], [1, ItemType.COOKED_MEAT], [8, ItemType.BERRY], [1, ItemType.BREAD] ] }, { price: 2000, items: [ [2, ItemType.BIG_FIRE], [1, ItemType.WOOD_PICK], [2, ItemType.COOKED_MEAT], [16, ItemType.BERRY], [2, ItemType.BREAD] ] }, { price: 4000, items: [ [3, ItemType.BIG_FIRE], [1, ItemType.STONE_PICK], [4, ItemType.COOKED_MEAT], [20, ItemType.BERRY], [4, ItemType.BREAD], [1, ItemType.WORKBENCH], [80, ItemType.STONE], [140, ItemType.WOOD] ] }, { price: 8000, items: [ [1, ItemType.BAG], [4, ItemType.BIG_FIRE], [1, ItemType.GOLD_PICK], [6, ItemType.COOKED_MEAT], [30, ItemType.BERRY], [6, ItemType.BREAD], [1, ItemType.WORKBENCH], [150, ItemType.STONE], [200, ItemType.WOOD], [60, ItemType.GOLD], [2, ItemType.BOTTLE_FULL] ] }, { price: 16000, items: [ [1, ItemType.BAG], [1, ItemType.DIAMOND_PICK], [1, ItemType.BED], [7, ItemType.CAKE], [2, ItemType.BOTTLE_FULL], [2, ItemType.BIG_FIRE], [1, ItemType.FURNACE], [15, ItemType.STONE_WALL], [2, ItemType.STONE_DOOR], [1, ItemType.TOTEM], [1, ItemType.WRENCH], [200, ItemType.STONE], [300, ItemType.WOOD] ] }, { price: 16000, items: [ [1, ItemType.BAG], [1, ItemType.COAT], [1, ItemType.GOLD_SHOVEL], [1, ItemType.GOLD_PICK], [10, ItemType.CAKE], [4, ItemType.BOTTLE_FULL], [6, ItemType.BIG_FIRE], [3, ItemType.BANDAGE], [1, ItemType.BOOK], [200, ItemType.STONE], [300, ItemType.WOOD] ] }, { price: 16000, items: [ [1, ItemType.BAG], [1, ItemType.HOOD], [1, ItemType.GOLD_HAMMER], [3, ItemType.BANDAGE], [1, 0], [1, ItemType.GOLD_PICK], [7, ItemType.CAKE], [2, ItemType.BOTTLE_FULL], [4, ItemType.BIG_FIRE], [150, ItemType.STONE], [200, ItemType.WOOD], [1, ItemType.LOCK_PICK] ] }, { price: 16000, items: [ [1, ItemType.BAG], [1, ItemType.PEASANT], [1, ItemType.GOLD_PICK], [7, ItemType.CAKE], [2, ItemType.BOTTLE_FULL], [4, ItemType.BIG_FIRE], [2, ItemType.WINDMILL], [4, ItemType.BREAD_OVEN], [10, ItemType.PLOT], [6, ItemType.WHEAT_SEED], [4, ItemType.BERRY_SEED], [1, ItemType.WATERING_CAN_FULL], [500, ItemType.WOOD] ] }, { price: 16000, items: [ [1, ItemType.BAG], [1, ItemType.GOLD_PICK], [16, ItemType.FISH_COOKED], [1, ItemType.BOTTLE_FULL], [6, ItemType.BIG_FIRE], [3, ItemType.BANDAGE], [1, ItemType.DIVING_MASK], [1, ItemType.STONE_SWORD], [16, ItemType.BRIDGE], [150, ItemType.STONE], [200, ItemType.WOOD] ] }, { price: 20000, items: [ [1, ItemType.BAG], [1, ItemType.GOLD_PICK], [1, ItemType.CAKE], [1, ItemType.BOTTLE_FULL], [3, ItemType.BIG_FIRE], [3, ItemType.BANDAGE], [1, ItemType.GOLD_HELMET], [1, ItemType.GOLD_SWORD], [1, ItemType.DIAMOND_SPEAR], [2, ItemType.GOLD_SPIKE], [50, ItemType.STONE], [100, ItemType.WOOD] ] } ]; let RECIPES = []; RECIPES[ItemType.WOOD_SWORD] = { r: [ [ItemType.WOOD, 30] ], f: 0, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.WEAPONS } RECIPES[ItemType.CURSED_SWORD] = { r: [ [ItemType.LAVA_SWORD, 1], [ItemType.EMERALD, 60], [ItemType.REIDITE, 180], [ItemType.AMETHYST, 250] ], f: 1, e: 0, w: 1, o: 1, time: 5, t: CATEGORY.WEAPONS } RECIPES[ItemType.STONE_SWORD] = { r: [ [ItemType.WOOD, 50], [ItemType.STONE, 25], [ItemType.WOOD_SWORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.WEAPONS } RECIPES[ItemType.GOLD_SWORD] = { r: [ [ItemType.WOOD, 60], [ItemType.GOLD, 40], [ItemType.STONE, 50], [ItemType.STONE_SWORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.WEAPONS } RECIPES[ItemType.DIAMOND_SWORD] = { r: [ [ItemType.DIAMOND, 40], [ItemType.GOLD, 60], [ItemType.STONE, 80], [ItemType.GOLD_SWORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.WEAPONS } RECIPES[ItemType.AMETHYST_SWORD] = { r: [ [ItemType.DIAMOND, 60], [ItemType.GOLD, 100], [ItemType.AMETHYST, 40], [ItemType.DIAMOND_SWORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.WEAPONS } RECIPES[ItemType.REIDITE_SWORD] = { r: [ [ItemType.DIAMOND, 100], [ItemType.AMETHYST, 80], [ItemType.REIDITE, 40], [ItemType.AMETHYST_SWORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.WEAPONS } RECIPES[ItemType.DRAGON_SWORD] = { r: [ [ItemType.DIAMOND_CORD, 20], [ItemType.DRAGON_ORB, 1], [ItemType.AMETHYST, 150], [ItemType.DRAGON_HEART, 3] ], f: 1, e: 0, w: 1, o: 1, time: 120, t: CATEGORY.WEAPONS } RECIPES[ItemType.LAVA_SWORD] = { r: [ [ItemType.DRAGON_SWORD, 1], [ItemType.LAVA_ORB, 1], [ItemType.REIDITE, 150], [ItemType.LAVA_HEART, 2] ], f: 1, e: 0, w: 1, o: 1, time: 180, t: CATEGORY.WEAPONS } RECIPES[ItemType.WOOD_SPEAR] = { r: [ [ItemType.WOOD, 40] ], f: 0, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.WEAPONS } RECIPES[ItemType.STONE_SPEAR] = { r: [ [ItemType.WOOD_SPEAR, 1], [ItemType.WOOD, 60], [ItemType.STONE, 10] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.WEAPONS } RECIPES[ItemType.GOLD_SPEAR] = { r: [ [ItemType.WOOD, 80], [ItemType.GOLD, 30], [ItemType.STONE, 30], [ItemType.STONE_SPEAR, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.WEAPONS } RECIPES[ItemType.DIAMOND_SPEAR] = { r: [ [ItemType.WOOD, 200], [ItemType.DIAMOND, 40], [ItemType.GOLD, 60], [ItemType.GOLD_SPEAR, 1] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.WEAPONS } RECIPES[ItemType.AMETHYST_SPEAR] = { r: [ [ItemType.AMETHYST, 40], [ItemType.DIAMOND, 80], [ItemType.GOLD, 90], [ItemType.DIAMOND_SPEAR, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.WEAPONS } RECIPES[ItemType.REIDITE_SPEAR] = { r: [ [ItemType.REIDITE, 40], [ItemType.AMETHYST, 80], [ItemType.DIAMOND, 90], [ItemType.AMETHYST_SPEAR, 1] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.WEAPONS } RECIPES[ItemType.DRAGON_SPEAR] = { r: [ [ItemType.DIAMOND_CORD, 20], [ItemType.DRAGON_ORB, 1], [ItemType.AMETHYST, 100], [ItemType.DRAGON_HEART, 3] ], f: 1, e: 0, w: 1, o: 1, time: 120, t: CATEGORY.WEAPONS } RECIPES[ItemType.LAVA_SPEAR] = { r: [ [ItemType.DRAGON_SPEAR, 1], [ItemType.LAVA_ORB, 1], [ItemType.REIDITE, 100], [ItemType.LAVA_HEART, 2] ], f: 1, e: 0, w: 1, o: 1, time: 200, t: CATEGORY.WEAPONS } RECIPES[ItemType.CRAB_SPEAR] = { r: [ [ItemType.WOOD_SPEAR, 1], [ItemType.CRAB_LOOT, 5], [ItemType.CORD, 6] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.WEAPONS } RECIPES[ItemType.WOOD_BOW] = { r: [ [ItemType.WOOD, 100], [ItemType.CORD, 4] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.WEAPONS } RECIPES[ItemType.STONE_BOW] = { r: [ [ItemType.STONE, 200], [ItemType.CORD, 8], [ItemType.PENGUIN_FEATHER, 4], [ItemType.WOOD_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 25, t: CATEGORY.WEAPONS } RECIPES[ItemType.GOLD_BOW] = { r: [ [ItemType.GOLD, 200], [ItemType.CORD, 12], [ItemType.HAWK_FEATHER, 4], [ItemType.PENGUIN_FEATHER, 4], [ItemType.STONE_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.WEAPONS } RECIPES[ItemType.DIAMOND_BOW] = { r: [ [ItemType.DIAMOND, 200], [ItemType.DIAMOND_CORD, 10], [ItemType.HAWK_FEATHER, 8], [ItemType.PENGUIN_FEATHER, 8], [ItemType.GOLD_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 35, t: CATEGORY.WEAPONS } RECIPES[ItemType.AMETHYST_BOW] = { r: [ [ItemType.AMETHYST, 200], [ItemType.DIAMOND_CORD, 10], [ItemType.PENGUIN_FEATHER, 8], [ItemType.VULTURE_FEATHER, 8], [ItemType.DIAMOND_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 40, t: CATEGORY.WEAPONS } RECIPES[ItemType.REIDITE_BOW] = { r: [ [ItemType.REIDITE, 200], [ItemType.DIAMOND_CORD, 10], [ItemType.KRAKEN_FUR, 1], [ItemType.AMETHYST_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 45, t: CATEGORY.WEAPONS } RECIPES[ItemType.DRAGON_BOW] = { r: [ [ItemType.EMERALD, 200], [ItemType.DIAMOND_CORD, 10], [ItemType.DRAGON_ORB, 1], [ItemType.REIDITE_BOW, 1] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.WEAPONS } RECIPES[ItemType.WOOD_ARROW] = { r: [ [ItemType.WOOD, 30] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.WEAPONS } RECIPES[ItemType.STONE_ARROW] = { r: [ [ItemType.STONE, 20], [ItemType.HAWK_FEATHER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.WEAPONS } RECIPES[ItemType.GOLD_ARROW] = { r: [ [ItemType.GOLD, 20], [ItemType.PENGUIN_FEATHER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.WEAPONS } RECIPES[ItemType.DIAMOND_ARROW] = { r: [ [ItemType.DIAMOND, 10], [ItemType.PENGUIN_FEATHER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.WEAPONS } RECIPES[ItemType.AMETHYST_ARROW] = { r: [ [ItemType.AMETHYST, 10], [ItemType.VULTURE_FEATHER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.WEAPONS } RECIPES[ItemType.REIDITE_ARROW] = { r: [ [ItemType.REIDITE, 10], [ItemType.VULTURE_FEATHER, 1], [ItemType.FLAME, 1] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.WEAPONS } RECIPES[ItemType.DRAGON_ARROW] = { r: [ [ItemType.EMERALD, 10], [ItemType.SANDWORM_JUICE, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.WEAPONS } RECIPES[ItemType.WOOD_SHIELD] = { r: [ [ItemType.WOOD, 100] ], f: 0, e: 0, w: 1, o: 0, time: 25, t: CATEGORY.WEAPONS } RECIPES[ItemType.STONE_SHIELD] = { r: [ [ItemType.WOOD_SHIELD, 1], [ItemType.STONE, 100], [ItemType.WOOD, 50] ], f: 0, e: 0, w: 1, o: 0, time: 40, t: CATEGORY.WEAPONS } RECIPES[ItemType.GOLD_SHIELD] = { r: [ [ItemType.STONE_SHIELD, 1], [ItemType.GOLD, 50], [ItemType.STONE, 50], [ItemType.WOOD, 50] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.WEAPONS } RECIPES[ItemType.DIAMOND_SHIELD] = { r: [ [ItemType.GOLD_SHIELD, 1], [ItemType.DIAMOND, 50], [ItemType.GOLD, 50], [ItemType.STONE, 50] ], f: 0, e: 0, w: 1, o: 0, time: 70, t: CATEGORY.WEAPONS } RECIPES[ItemType.AMETHYST_SHIELD] = { r: [ [ItemType.DIAMOND_SHIELD, 1], [ItemType.AMETHYST, 50], [ItemType.DIAMOND, 50], [ItemType.GOLD, 50] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.WEAPONS } RECIPES[ItemType.REIDITE_SHIELD] = { r: [ [ItemType.AMETHYST_SHIELD, 1], [ItemType.REIDITE, 50], [ItemType.AMETHYST, 50], [ItemType.DIAMOND, 50] ], f: 0, e: 0, w: 1, o: 0, time: 120, t: CATEGORY.WEAPONS } RECIPES[ItemType.WOOD_PICK] = { r: [ [ItemType.WOOD, 10] ], f: 0, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.TOOLS } RECIPES[ItemType.STONE_PICK] = { r: [ [ItemType.WOOD_PICK, 1], [ItemType.WOOD, 50], [ItemType.STONE, 15] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.TOOLS } RECIPES[ItemType.GOLD_PICK] = { r: [ [ItemType.WOOD, 40], [ItemType.GOLD, 20], [ItemType.STONE, 30], [ItemType.STONE_PICK, 1] ], f: 0, e: 0, w: 1, o: 0, time: 12, t: CATEGORY.TOOLS } RECIPES[ItemType.DIAMOND_PICK] = { r: [ [ItemType.DIAMOND, 20], [ItemType.GOLD, 50], [ItemType.STONE, 80], [ItemType.GOLD_PICK, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.TOOLS } RECIPES[ItemType.AMETHYST_PICK] = { r: [ [ItemType.DIAMOND, 40], [ItemType.GOLD, 60], [ItemType.AMETHYST, 30], [ItemType.DIAMOND_PICK, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.TOOLS } RECIPES[ItemType.REIDITE_PICK] = { r: [ [ItemType.AMETHYST, 30], [ItemType.DIAMOND, 40], [ItemType.REIDITE, 30], [ItemType.AMETHYST_PICK, 1] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.TOOLS } RECIPES[ItemType.STONE_SHOVEL] = { r: [ [ItemType.WOOD, 30], [ItemType.STONE, 15] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.TOOLS } RECIPES[ItemType.GOLD_SHOVEL] = { r: [ [ItemType.STONE_SHOVEL, 1], [ItemType.GOLD, 20], [ItemType.STONE, 30], [ItemType.WOOD, 40] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.DIAMOND_SHOVEL] = { r: [ [ItemType.GOLD_SHOVEL, 1], [ItemType.DIAMOND, 20], [ItemType.GOLD, 50], [ItemType.STONE, 80] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.TOOLS } RECIPES[ItemType.AMETHYST_SHOVEL] = { r: [ [ItemType.DIAMOND_SHOVEL, 1], [ItemType.GOLD, 60], [ItemType.AMETHYST, 30], [ItemType.DIAMOND, 40] ], f: 0, e: 0, w: 1, o: 0, time: 40, t: CATEGORY.TOOLS } RECIPES[ItemType.REIDITE_SHOVEL] = { r: [ [ItemType.AMETHYST_SHOVEL, 1], [ItemType.DIAMOND, 60], [ItemType.REIDITE, 30], [ItemType.AMETHYST, 40] ], f: 0, e: 0, w: 1, o: 0, time: 40, t: CATEGORY.TOOLS } RECIPES[ItemType.WOOD_HELMET] = { r: [ [ItemType.WOOD, 50] ], f: 0, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.CLOTHES } RECIPES[ItemType.STONE_HELMET] = { r: [ [ItemType.STONE, 75], [ItemType.WOOD, 75], [ItemType.WOOD_HELMET, 1] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.CLOTHES } RECIPES[ItemType.GOLD_HELMET] = { r: [ [ItemType.STONE, 90], [ItemType.WOOD, 90], [ItemType.GOLD, 90], [ItemType.STONE_HELMET, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.CLOTHES } RECIPES[ItemType.DIAMOND_HELMET] = { r: [ [ItemType.STONE, 100], [ItemType.GOLD, 100], [ItemType.DIAMOND, 100], [ItemType.GOLD_HELMET, 1] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.CLOTHES } RECIPES[ItemType.AMETHYST_HELMET] = { r: [ [ItemType.AMETHYST, 80], [ItemType.GOLD, 150], [ItemType.DIAMOND, 120], [ItemType.DIAMOND_HELMET, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.REIDITE_HELMET] = { r: [ [ItemType.REIDITE, 80], [ItemType.DIAMOND, 150], [ItemType.AMETHYST, 120], [ItemType.AMETHYST_HELMET, 1] ], f: 1, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.CLOTHES } RECIPES[ItemType.DRAGON_HELMET] = { r: [ [ItemType.DIAMOND_CORD, 30], [ItemType.DRAGON_CUBE, 1], [ItemType.AMETHYST, 150], [ItemType.DRAGON_HEART, 3] ], f: 1, e: 0, w: 1, o: 1, time: 120, t: CATEGORY.CLOTHES } RECIPES[ItemType.LAVA_HELMET] = { r: [ [ItemType.DRAGON_HELMET, 1], [ItemType.LAVA_CUBE, 1], [ItemType.REIDITE, 150], [ItemType.LAVA_HEART, 2] ], f: 1, e: 0, w: 1, o: 1, time: 180, t: CATEGORY.CLOTHES } RECIPES[ItemType.CRAB_HELMET] = { r: [ [ItemType.GOLD_HELMET, 1], [ItemType.CRAB_LOOT, 10], [ItemType.CRAB_STICK, 10], [ItemType.CORD, 10] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.DIAMOND_PROTECTION] = { r: [ [ItemType.FLAME, 5], [ItemType.DIAMOND, 50], [ItemType.DIAMOND_CORD, 5] ], f: 1, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.CLOTHES } RECIPES[ItemType.AMETHYST_PROTECTION] = { r: [ [ItemType.DIAMOND_PROTECTION, 1], [ItemType.FLAME, 10], [ItemType.AMETHYST, 50] ], f: 1, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.REIDITE_PROTECTION] = { r: [ [ItemType.AMETHYST_PROTECTION, 1], [ItemType.FLAME, 15], [ItemType.AMETHYST, 50], [ItemType.REIDITE, 50] ], f: 1, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.CLOTHES } RECIPES[ItemType.SUPER_DIVING_SUIT] = { r: [ [ItemType.DIVING_MASK, 1], [ItemType.GOLD, 80], [ItemType.KRAKEN_FUR, 1], [ItemType.AMETHYST, 20] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.CLOTHES } RECIPES[ItemType.DIVING_MASK] = { r: [ [ItemType.PIRANHA_SCALES, 2], [ItemType.DIAMOND, 40], [ItemType.CORD, 4] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.CLOTHES } RECIPES[ItemType.STONE_HAMMER] = { r: [ [ItemType.WOOD, 90], [ItemType.STONE, 50] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.GOLD_HAMMER] = { r: [ [ItemType.WOOD, 160], [ItemType.STONE, 120], [ItemType.GOLD, 80], [ItemType.STONE_HAMMER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.TOOLS } RECIPES[ItemType.DIAMOND_HAMMER] = { r: [ [ItemType.DIAMOND, 80], [ItemType.STONE, 200], [ItemType.GOLD, 150], [ItemType.GOLD_HAMMER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.TOOLS } RECIPES[ItemType.AMETHYST_HAMMER] = { r: [ [ItemType.DIAMOND, 160], [ItemType.AMETHYST, 60], [ItemType.GOLD, 250], [ItemType.DIAMOND_HAMMER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.TOOLS } RECIPES[ItemType.REIDITE_HAMMER] = { r: [ [ItemType.AMETHYST, 160], [ItemType.REIDITE, 60], [ItemType.DIAMOND, 250], [ItemType.AMETHYST_HAMMER, 1] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.TOOLS } RECIPES[ItemType.SUPER_HAMMER] = { r: [ [ItemType.REIDITE_HAMMER, 1], [ItemType.BOTTLE_FULL, 1], [ItemType.KRAKEN_FUR, 1], [ItemType.PIRANHA_SCALES, 10], [ItemType.AMETHYST, 20] ], f: 1, e: 0, w: 1, o: 0, time: 120, t: CATEGORY.TOOLS } RECIPES[ItemType.CROWN_GREEN] = { r: [ [ItemType.GEM_GREEN, 1], [ItemType.GOLD, 200] ], f: 1, e: 0, w: 1, o: 1, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.CROWN_ORANGE] = { r: [ [ItemType.GEM_ORANGE, 1], [ItemType.GOLD, 200] ], f: 1, e: 0, w: 1, o: 1, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.CROWN_BLUE] = { r: [ [ItemType.GEM_BLUE, 1], [ItemType.GOLD, 200], [ItemType.DRAGON_HEART, 1] ], f: 1, e: 0, w: 1, o: 1, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.FIRE] = { r: [ [ItemType.WOOD, 25], [ItemType.STONE, 5] ], f: 0, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.BIG_FIRE] = { r: [ [ItemType.FIRE, 1], [ItemType.WOOD, 35], [ItemType.STONE, 10] ], f: 0, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.FURNACE] = { r: [ [ItemType.WOOD, 150], [ItemType.STONE, 50], [ItemType.GOLD, 15] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.UTILS } RECIPES[ItemType.WORKBENCH] = { r: [ [ItemType.WOOD, 20], [ItemType.STONE, 10] ], f: 0, e: 0, w: 0, o: 0, time: 6, t: CATEGORY.UTILS } RECIPES[ItemType.PAPER] = { r: [ [ItemType.WOOD, 20] ], f: 1, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.UTILS } RECIPES[ItemType.STONE_EXTRACTOR] = { r: [ [ItemType.WOOD, 50], [ItemType.STONE, 100] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.UTILS } RECIPES[ItemType.GOLD_EXTRACTOR] = { r: [ [ItemType.STONE, 60], [ItemType.GOLD, 120] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.UTILS } RECIPES[ItemType.DIAMOND_EXTRACTOR] = { r: [ [ItemType.GOLD, 70], [ItemType.DIAMOND, 140] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.UTILS } RECIPES[ItemType.AMETHYST_EXTRACTOR] = { r: [ [ItemType.DIAMOND, 80], [ItemType.AMETHYST, 160] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.UTILS } RECIPES[ItemType.REIDITE_EXTRACTOR] = { r: [ [ItemType.AMETHYST, 90], [ItemType.REIDITE, 180] ], f: 0, e: 0, w: 1, o: 0, time: 90, t: CATEGORY.UTILS } RECIPES[ItemType.EARMUFFS] = { r: [ [ItemType.RABBIT_FUR, 1], [ItemType.CORD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.CLOTHES } RECIPES[ItemType.COAT] = { r: [ [ItemType.EARMUFFS, 1], [ItemType.WOLF_FUR, 5], [ItemType.CORD, 4] ], f: 0, e: 0, w: 1, o: 0, time: 12, t: CATEGORY.CLOTHES } RECIPES[ItemType.CAP_SCARF] = { r: [ [ItemType.COAT, 1], [ItemType.WINTER_FUR, 5], [ItemType.DIAMOND_CORD, 4] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.CLOTHES } RECIPES[ItemType.FUR_HAT] = { r: [ [ItemType.CAP_SCARF, 1], [ItemType.WINTER_FUR, 5], [ItemType.MAMMOTH_FUR, 10], [ItemType.DIAMOND_CORD, 4] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.CLOTHES } RECIPES[ItemType.HOOD] = { r: [ [ItemType.WOLF_FUR, 10], [ItemType.RABBIT_FUR, 5], [ItemType.CORD, 6] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.CLOTHES } RECIPES[ItemType.PEASANT] = { r: [ [ItemType.RABBIT_FUR, 3], [ItemType.CORD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.CLOTHES } RECIPES[ItemType.WINTER_HOOD] = { r: [ [ItemType.HOOD, 1], [ItemType.WINTER_HOOD_FUR, 1], [ItemType.WINTER_FUR, 15], [ItemType.DIAMOND_CORD, 5], [ItemType.PENGUIN_FEATHER, 8] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.WINTER_PEASANT] = { r: [ [ItemType.PEASANT, 1], [ItemType.WINTER_PEASANT_FUR, 1], [ItemType.WINTER_FUR, 10], [ItemType.DIAMOND_CORD, 5], [ItemType.PENGUIN_FEATHER, 8] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.PILOT_HAT] = { r: [ [ItemType.PILOT_GLASSES, 1], [ItemType.HAWK_FEATHER, 8], [ItemType.VULTURE_FEATHER, 8], [ItemType.PENGUIN_FEATHER, 8], [ItemType.CORD, 6] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.CLOTHES } RECIPES[ItemType.TURBAN1] = { r: [ [ItemType.CORD, 4], [ItemType.BOAR_FUR, 2] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.CLOTHES } RECIPES[ItemType.TURBAN2] = { r: [ [ItemType.TURBAN1, 1], [ItemType.CORD, 6], [ItemType.BOAR_FUR, 4], [ItemType.VULTURE_FEATHER, 12], [ItemType.PENGUIN_FEATHER, 4] ], f: 0, e: 0, w: 1, o: 0, time: 150, t: CATEGORY.CLOTHES } RECIPES[ItemType.BOOK] = { r: [ [ItemType.PAPER, 4], [ItemType.CORD, 4], [ItemType.WOLF_FUR, 4] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.TOOLS } RECIPES[ItemType.BAG] = { r: [ [ItemType.CORD, 6], [ItemType.WOLF_FUR, 5] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.CLOTHES } RECIPES[ItemType.EXPLORER_HAT] = { r: [ [ItemType.PAPER, 1], [ItemType.RABBIT_FUR, 1], [ItemType.CORD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.CLOTHES } RECIPES[ItemType.PIRATE_HAT] = { r: [ [ItemType.PAPER, 5], [ItemType.PENGUIN_FEATHER, 20], [ItemType.DIAMOND_CORD, 5], [ItemType.RABBIT_FUR, 5] ], f: 0, e: 0, w: 1, o: 0, time: 30, t: CATEGORY.CLOTHES } RECIPES[ItemType.PITCHFORK] = { r: [ [ItemType.WOOD, 100], [ItemType.STONE, 50] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.GOLD_PITCHFORK] = { r: [ [ItemType.PITCHFORK, 1], [ItemType.PITCHFORK_PART, 1] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.TOOLS } RECIPES[ItemType.WRENCH] = { r: [ [ItemType.STONE, 70] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.GOLD_WRENCH] = { r: [ [ItemType.FLOWER_HAT, 1] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.MACHETE] = { r: [ [ItemType.STONE, 70], [ItemType.WOOD, 50] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.TOOLS } RECIPES[ItemType.WATERING_CAN_EMPTY] = { r: [ [ItemType.WOOD, 40] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.TOOLS } RECIPES[ItemType.WATERING_CAN_FULL] = { r: [ [ItemType.WATERING_CAN_EMPTY, 1] ], f: 0, e: 0, w: 0, o: 1, time: 5, t: CATEGORY.TOOLS } RECIPES[ItemType.BRIDGE] = { r: [ [ItemType.WOOD, 15] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.TOWER] = { r: [ [ItemType.WOOD, 120] ], f: 0, e: 0, w: 1, o: 0, time: 15, t: CATEGORY.UTILS } RECIPES[ItemType.SADDLE] = { r: [ [ItemType.CORD, 10], [ItemType.WOLF_FUR, 6], [ItemType.RABBIT_FUR, 4], [ItemType.SAND, 50] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.UTILS } RECIPES[ItemType.WINDMILL] = { r: [ [ItemType.WOOD, 60], [ItemType.STONE, 20], [ItemType.CORD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.UTILS } RECIPES[ItemType.PLOT] = { r: [ [ItemType.WOOD, 20], [ItemType.GROUND, 15] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.BREAD_OVEN] = { r: [ [ItemType.WOOD, 40], [ItemType.STONE, 40] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.UTILS } RECIPES[ItemType.DIAMOND_CORD] = { r: [ [ItemType.DIAMOND, 1], [ItemType.CORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 3, t: CATEGORY.UTILS } RECIPES[ItemType.RESURRECTION] = { r: [ [ItemType.DIAMOND, 40], [ItemType.STONE, 45] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.UTILS } RECIPES[ItemType.EMERALD_MACHINE] = { r: [ [ItemType.RESURRECTION, 1], [ItemType.EMERALD, 40], [ItemType.SANDWORM_JUICE, 1] ], f: 1, e: 0, w: 1, o: 1, time: 200, t: CATEGORY.UTILS } RECIPES[ItemType.LOCK_PICK] = { r: [ [ItemType.GOLD, 250] ], f: 0, e: 0, w: 1, o: 0, time: 60, t: CATEGORY.UTILS } RECIPES[ItemType.LOCK] = { r: [ [ItemType.GOLD, 10] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.TOTEM] = { r: [ [ItemType.WOOD, 50] ], f: 0, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.UTILS } RECIPES[ItemType.CHEST] = { r: [ [ItemType.WOOD, 25], [ItemType.GOLD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.WELL] = { r: [ [ItemType.STONE, 100], [ItemType.GROUND, 30] ], f: 1, e: 0, w: 1, o: 0, time: 10, t: CATEGORY.UTILS } RECIPES[ItemType.BANDAGE] = { r: [ [ItemType.CORD, 2] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.ROOF] = { r: [ [ItemType.WOOD, 30] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.UTILS } RECIPES[ItemType.BED] = { r: [ [ItemType.WOOD, 100], [ItemType.STONE, 50], [ItemType.RABBIT_FUR, 5], [ItemType.WOLF_FUR, 5], [ItemType.CORD, 6] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.UTILS } RECIPES[ItemType.BOAT] = { r: [ [ItemType.WOOD, 250], [ItemType.DIAMOND_CORD, 10], [ItemType.WINTER_FUR, 2], [ItemType.PIRANHA_SCALES, 2] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.UTILS } RECIPES[ItemType.SLED] = { r: [ [ItemType.WOOD, 250], [ItemType.CORD, 10], [ItemType.WINTER_FUR, 2], [ItemType.PENGUIN_FEATHER, 8] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.UTILS } RECIPES[ItemType.PLANE] = { r: [ [ItemType.WOOD, 250], [ItemType.CORD, 10], [ItemType.PAPER, 10], [ItemType.HAWK_FEATHER, 8] ], f: 0, e: 0, w: 1, o: 0, time: 50, t: CATEGORY.UTILS } RECIPES[ItemType.BERRY_SEED] = { r: [ [ItemType.BERRY, 3] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.WHEAT_SEED] = { r: [ [ItemType.WHEAT, 3] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.PUMPKIN_SEED] = { r: [ [ItemType.PUMPKIN, 8] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.CARROT_SEED] = { r: [ [ItemType.CARROT, 8] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.TOMATO_SEED] = { r: [ [ItemType.TOMATO, 8] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.THORNBUSH_SEED] = { r: [ [ItemType.THORNBUSH, 8] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.GARLIC_SEED] = { r: [ [ItemType.GARLIC, 8] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.WATERMELON_SEED] = { r: [ [ItemType.WATERMELON, 16] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.ALOE_VERA_SEED] = { r: [ [ItemType.ALOE_VERA, 16] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.BREAD] = { r: [ [ItemType.FLOUR, 3] ], f: 1, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.SANDWICH] = { r: [ [ItemType.BREAD, 1], [ItemType.COOKED_MEAT, 1] ], f: 0, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.BOTTLE_FULL] = { r: [ [ItemType.BOTTLE_EMPTY, 1] ], f: 0, e: 1, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.BOTTLE_FULL_2] = { r: [ [ItemType.BOTTLE_EMPTY, 1], [ItemType.ICE, 20] ], f: 1, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.BOTTLE_FULL_3] = { r: [ [ItemType.BOTTLE_EMPTY, 1], ], f: 0, e: 0, w: 0, o: 1, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.BOTTLE_EMPTY] = { r: [ [ItemType.SAND, 25] ], f: 1, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.COOKIE] = { r: [ [ItemType.FLOUR, 3], [ItemType.BERRY, 1] ], f: 1, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.CAKE] = { r: [ [ItemType.FLOUR, 5], [ItemType.BERRY, 2], [ItemType.ICE, 2] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.FISH_COOKED] = { r: [ [ItemType.FISH, 1] ], f: 1, e: 0, w: 0, o: 0, time: 3, t: CATEGORY.FOODS } RECIPES[ItemType.COOKED_MEAT] = { r: [ [ItemType.MEAT, 1] ], f: 1, e: 0, w: 0, o: 0, time: 5, t: CATEGORY.FOODS } RECIPES[ItemType.BUCKET_FULL] = { r: [ [ItemType.BUCKET_EMPTY, 1] ], f: 0, e: 0, w: 0, o: 1, time: 5, t: CATEGORY.TOOLS } RECIPES[ItemType.BUCKET_EMPTY] = { r: [ [ItemType.WOOD, 20], [ItemType.CORD, 1] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.TOOLS } RECIPES[ItemType.WOOD_WALL] = { r: [ [ItemType.WOOD, 20] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.STONE_WALL] = { r: [ [ItemType.WOOD_WALL, 1], [ItemType.STONE, 17] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.GOLD_WALL] = { r: [ [ItemType.STONE_WALL, 1], [ItemType.GOLD, 14] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.DIAMOND_WALL] = { r: [ [ItemType.GOLD_WALL, 1], [ItemType.DIAMOND, 11] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.AMETHYST_WALL] = { r: [ [ItemType.DIAMOND_WALL, 1], [ItemType.AMETHYST, 8] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.REIDITE_WALL] = { r: [ [ItemType.AMETHYST_WALL, 1], [ItemType.REIDITE, 5] ], f: 0, e: 0, w: 1, o: 0, time: 5, t: CATEGORY.BASES } RECIPES[ItemType.WOOD_SPIKE] = { r: [ [ItemType.WOOD_WALL, 1], [ItemType.WOOD, 40], [ItemType.STONE, 30] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.STONE_SPIKE] = { r: [ [ItemType.STONE_WALL, 1], [ItemType.STONE, 70] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.GOLD_SPIKE] = { r: [ [ItemType.GOLD_WALL, 1], [ItemType.GOLD, 40], [ItemType.STONE, 30] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.DIAMOND_SPIKE] = { r: [ [ItemType.DIAMOND_WALL, 1], [ItemType.DIAMOND, 40], [ItemType.STONE, 30] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.AMETHYST_SPIKE] = { r: [ [ItemType.AMETHYST_WALL, 1], [ItemType.AMETHYST, 40], [ItemType.STONE, 30] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.REIDITE_SPIKE] = { r: [ [ItemType.REIDITE_WALL, 1], [ItemType.REIDITE, 40], [ItemType.GOLD, 30] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.WOOD_DOOR] = { r: [ [ItemType.WOOD, 30] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.STONE_DOOR] = { r: [ [ItemType.WOOD_DOOR, 1], [ItemType.STONE, 27] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.GOLD_DOOR] = { r: [ [ItemType.STONE_DOOR, 1], [ItemType.GOLD, 24] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.DIAMOND_DOOR] = { r: [ [ItemType.GOLD_DOOR, 1], [ItemType.DIAMOND, 21] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.AMETHYST_DOOR] = { r: [ [ItemType.DIAMOND_DOOR, 1], [ItemType.AMETHYST, 18] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.REIDITE_DOOR] = { r: [ [ItemType.AMETHYST_DOOR, 1], [ItemType.REIDITE, 15] ], f: 0, e: 0, w: 1, o: 0, time: 8, t: CATEGORY.BASES } RECIPES[ItemType.WOOD_DOOR_SPIKE] = { r: [ [ItemType.WOOD_DOOR, 1], [ItemType.WOOD, 80], [ItemType.STONE, 60] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.STONE_DOOR_SPIKE] = { r: [ [ItemType.STONE_DOOR, 1], [ItemType.STONE, 140] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.GOLD_DOOR_SPIKE] = { r: [ [ItemType.GOLD_DOOR, 1], [ItemType.GOLD, 80], [ItemType.STONE, 60] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.DIAMOND_DOOR_SPIKE] = { r: [ [ItemType.DIAMOND_DOOR, 1], [ItemType.DIAMOND, 80], [ItemType.STONE, 60] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.AMETHYST_DOOR_SPIKE] = { r: [ [ItemType.AMETHYST_DOOR, 1], [ItemType.AMETHYST, 80], [ItemType.STONE, 60] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } RECIPES[ItemType.REIDITE_DOOR_SPIKE] = { r: [ [ItemType.REIDITE_DOOR, 1], [ItemType.REIDITE, 80], [ItemType.GOLD, 60] ], f: 0, e: 0, w: 1, o: 0, time: 20, t: CATEGORY.BASES } let IMAGES = { LOGO: "logo", BIGDAY: "mapday", BIGNIGHT: "mapnight", BIGZDAY: "bigzday", BIGZNIGHT: "bigznight", MAPDAY_RIVER: "bigday-river1", MAPDAY_BERRY: "bigday-berry", MAPDAY_STONE1: "bigday-stone1", MAPDAY_STONE2: "bigday-stone2", MAPDAY_GOLD1: "bigday-gold1", MAPDAY_GOLD2: "bigday-gold2", MAPDAY_EMERALD1: "bigday-emerald1", MAPDAY_EMERALD2: "bigday-emerald2", MAPDAY_AMETHYST: "bigday-amethyst", MAPDAY_BEAR: "bigday-bear", MAPDAY_CAVE: "bigday-cave", MAPDAY_DIAMOND: "bigday-diamond", MAPDAY_ISLAND: "bigday-island", MAPDAY_REIDITE: "bigday-reidite", MAPDAY_SPIDER: "bigday-spider", MAPDAY_WOLF: "bigday-wolf", MAPDAY_FIR_TREE: "bigday-fir-tree", MAPDAY_FOX: "bigday-fox", MAPDAY_KRAKEN: "bigday-kraken", MAPDAY_PIRANHA: "bigday-piranha", MAPDAY_CACTUS: "bigday-cactus", MAPDAY_MAGMA: "bigday-magma", MAPNIGHT_RIVER: "bigday-river1", MAPNIGHT_BERRY: "bignight-berry", MAPNIGHT_STONE1: "bignight-stone1", MAPNIGHT_STONE2: "bignight-stone2", MAPNIGHT_GOLD1: "bignight-gold1", MAPNIGHT_GOLD2: "bignight-gold2", MAPNIGHT_EMERALD1: "bignight-emerald1", MAPNIGHT_EMERALD2: "bignight-emerald2", MAPNIGHT_AMETHYST: "bignight-amethyst", MAPNIGHT_BEAR: "bignight-bear", MAPNIGHT_CAVE: "bignight-cave", MAPNIGHT_DIAMOND: "bignight-diamond", MAPNIGHT_ISLAND: "bignight-island", MAPNIGHT_REIDITE: "bignight-reidite", MAPNIGHT_SPIDER: "bignight-spider", MAPNIGHT_WOLF: "bignight-wolf", MAPNIGHT_FIR_TREE: "bignight-fir-tree", MAPNIGHT_FOX: "bignight-fox", MAPNIGHT_KRAKEN: "bignight-kraken", MAPNIGHT_PIRANHA: "bignight-piranha", MAPNIGHT_CACTUS: "bignight-cactus", MAPNIGHT_MAGMA: "bignight-magma", MAPDAY_DESERT: "bigday-desert", MAPDAY_WINTER: "bigday-winter", MAPDAY_LAVA: "bigday-lava", MAPDAY_FOREST: "bigday-forest", MAPNIGHT_DESERT: "bignight-desert", MAPNIGHT_WINTER: "bignight-winter", MAPNIGHT_LAVA: "bignight-lava", MAPNIGHT_FOREST: "bignight-forest", RIVER_WAVED: "day-river-wave", RIVER_WAVEN: "night-river-wave", FOG0D: "day-fog0", FOG1D: "day-fog1", FOG2D: "day-fog2", FOG0N: "night-fog0", FOG1N: "night-fog1", FOG2N: "night-fog2", FOD0D: "day-fogdesert0", FOD1D: "day-fogdesert1", FOD2D: "day-fogdesert2", FOD0N: "night-fogdesert0", FOD1N: "night-fogdesert1", FOD2N: "night-fogdesert2", MARKER0D: "day-cross-server", MARKER1D: "day-here-server", MARKER2D: "day-finish-server", MARKER3D: "day-item-server", MARKER0N: "night-cross-server", MARKER1N: "night-here-server", MARKER2N: "night-finish-server", MARKER3N: "night-item-server", /* LAVA BIOME*/ REIDITE0D: "day-reidite0", REIDITE0N: "night-reidite0", REIDITE1D: "day-reidite1", REIDITE1N: "night-reidite1", REIDITE2D: "day-reidite2", REIDITE2N: "night-reidite2", MAGMA1D: "day-lava1", MAGMA1N: "night-lava1", MAGMA2D: "day-lava2", MAGMA2N: "night-lava2", MAGMA3D: "day-lava3", MAGMA3N: "night-lava3", MAGMA4D: "day-lava4", MAGMA4N: "night-lava4", MAGMA5D: "day-lava5", MAGMA5N: "night-lava5", MAGMA6D: "day-lava6", MAGMA6N: "night-lava6", LAVA_GROUND1D: "day-lava-ground1", LAVA_GROUND1N: "night-lava-ground1", LAVA_GROUND2D: "day-lava-ground2", LAVA_GROUND2N: "night-lava-ground2", LAVA_GROUND3D: "day-lava-ground3", LAVA_GROUND3N: "night-lava-ground3", LAVA_GROUND4D: "day-lava-ground4", LAVA_GROUND4N: "night-lava-ground4", LAVA_GROUND5D: "day-lava-ground5", LAVA_GROUND5N: "night-lava-ground5", LAVA_GROUND6D: "day-lava-ground6", LAVA_GROUND6N: "night-lava-ground6", FIRE_MOBD: "day-fire-mob", FIRE_MOBN: "night-fire-mob", FIRE_MOB_HURT: "hurt-fire-mob", DIAMOND_PROTECTIOND: "day-diamond-protection", DIAMOND_PROTECTIONN: "night-diamond-protection", HAND_DIAMOND_PROTECTIOND: "day-hand-diamond-protection", HAND_DIAMOND_PROTECTIONN: "night-hand-diamond-protection", INV_DIAMOND_PROTECTION_OUT: "inv-diamond-protection-out", INV_DIAMOND_PROTECTION_IN: "inv-diamond-protection-in", INV_DIAMOND_PROTECTION_CLICK: "inv-diamond-protection-click", AMETHYST_PROTECTIOND: "day-amethyst-protection", AMETHYST_PROTECTIONN: "night-amethyst-protection", HAND_AMETHYST_PROTECTIOND: "day-hand-amethyst-protection", HAND_AMETHYST_PROTECTIONN: "night-hand-amethyst-protection", INV_AMETHYST_PROTECTION_OUT: "inv-amethyst-protection-out", INV_AMETHYST_PROTECTION_IN: "inv-amethyst-protection-in", INV_AMETHYST_PROTECTION_CLICK: "inv-amethyst-protection-click", REIDITE_SWORDD: "day-reidite-sword", REIDITE_SWORDN: "night-reidite-sword", INV_REIDITE_SWORD_OUT: "inv-reidite-sword-out", INV_REIDITE_SWORD_IN: "inv-reidite-sword-in", INV_REIDITE_SWORD_CLICK: "inv-reidite-sword-click", INV_REIDITE_OUT: "inv-reidite-out", INV_REIDITE_IN: "inv-reidite-in", INV_REIDITE_CLICK: "inv-reidite-click", INV_FLAME_OUT: "inv-flame-out", INV_FLAME_IN: "inv-flame-in", INV_FLAME_CLICK: "inv-flame-click", LAVA_BUBLE0D: "day-magma-buble0", LAVA_BUBLE0N: "night-magma-buble0", LAVA_BUBLE1D: "day-magma-buble1", LAVA_BUBLE1N: "night-magma-buble1", LAVA_BUBLE2D: "day-magma-buble2", LAVA_BUBLE2N: "night-magma-buble2", LAVA_DRAGOND: "day-lava-dragon", LAVA_DRAGONN: "night-lava-dragon", LAVA_FIRE_DRAGOND: "day-fire-dragon", LAVA_FIRE_DRAGONN: "night-fire-dragon", HURT_LAVA_DRAGON: "hurt-lava-dragon", LAVA_WING_LEFTD: "day-lava-wing-left", LAVA_WING_LEFTN: "night-lava-wing-left", LAVA_WING_RIGHTD: "day-lava-wing-right", LAVA_WING_RIGHTN: "night-lava-wing-right", HURT_LAVA_WING_LEFT: "hurt-lava-wing-left", HURT_LAVA_WING_RIGHT: "hurt-lava-wing-right", REIDITE_SPEARD: "day-reidite-spear", REIDITE_SPEARN: "night-reidite-spear", INV_REIDITE_SPEAR_OUT: "inv-reidite-spear-out", INV_REIDITE_SPEAR_IN: "inv-reidite-spear-in", INV_REIDITE_SPEAR_CLICK: "inv-reidite-spear-click", REIDITE_HELMETD: "day-reidite-helmet", REIDITE_HELMETN: "night-reidite-helmet", INV_REIDITE_HELMET_OUT: "inv-reidite-helmet-out", INV_REIDITE_HELMET_IN: "inv-reidite-helmet-in", INV_REIDITE_HELMET_CLICK: "inv-reidite-helmet-click", HAND_REIDITE_PROTECTIOND: "day-hand-reidite-protection", HAND_REIDITE_PROTECTIONN: "night-hand-reidite-protection", REIDITE_PROTECTIOND: "day-reidite-protection", REIDITE_PROTECTIONN: "night-reidite-protection", INV_REIDITE_PROTECTION_OUT: "inv-reidite-protection-out", INV_REIDITE_PROTECTION_IN: "inv-reidite-protection-in", INV_REIDITE_PROTECTION_CLICK: "inv-reidite-protection-click", LAVA_SWORDD: "day-lava-dragon-sword", LAVA_SWORDN: "night-lava-dragon-sword", INV_LAVA_SWORD_OUT: "inv-lava-dragon-sword-out", INV_LAVA_SWORD_IN: "inv-lava-dragon-sword-in", INV_LAVA_SWORD_CLICK: "inv-lava-dragon-sword-click", LAVA_SPEARD: "day-lava-spear", LAVA_SPEARN: "night-lava-spear", INV_LAVA_SPEAR_OUT: "inv-lava-spear-out", INV_LAVA_SPEAR_IN: "inv-lava-spear-in", INV_LAVA_SPEAR_CLICK: "inv-lava-spear-click", LAVA_HELMETD: "day-lava-helmet", LAVA_HELMETN: "night-lava-helmet", INV_LAVA_HELMET_OUT: "inv-lava-helmet-out", INV_LAVA_HELMET_IN: "inv-lava-helmet-in", INV_LAVA_HELMET_CLICK: "inv-lava-helmet-click", WITCHD: "day-witch-hat", WITCHN: "night-witch-hat", INV_WITCH_OUT: "inv-witch-hat-out", INV_WITCH_IN: "inv-witch-hat-in", INV_WITCH_CLICK: "inv-witch-hat-click", NIMBUSD: "day-nimbus2000", NIMBUSN: "night-nimbus2000", INV_NIMBUS_OUT: "inv-nimbus2000-out", INV_NIMBUS_IN: "inv-nimbus2000-in", INV_NIMBUS_CLICK: "inv-nimbus2000-click", ACCESSORY1D: "day-accessory1-pacques", ACCESSORY1N: "night-accessory1-pacques", ACCESSORY2D: "day-accessory2-pacques", ACCESSORY2N: "night-accessory2-pacques", ACCESSORY3D: "day-accessory3-pacques", ACCESSORY3N: "night-accessory3-pacques", //ACCESSORY4D : 'img/day-accessory4-pacques.png', //ACCESSORY4N : 'img/night-accessory4-pacques.png', ACCESSORY5D: "day-accessory5-pacques", ACCESSORY5N: "night-accessory5-pacques", ACCESSORY6D: "day-accessory6-pacques", ACCESSORY6N: "night-accessory6-pacques", ACCESSORY7D: "day-accessory7-pacques", ACCESSORY7N: "night-accessory7-pacques", ACCESSORY8D: "day-accessory8-pacques", ACCESSORY8N: "night-accessory8-pacques", //ACCESSORY9D : 'img/day-accessory9-pacques.png', //ACCESSORY9N : 'img/night-accessory9-pacques.png', BAG_EASTERD: "day-bag-pacques", BAG_EASTERN: "night-bag-pacques", //FARMS Update CARROTD: "day-carrot", CARROTN: "night-carrot", CARROT_DRIEDD: "day-carrot-dried", CARROT_DRIEDN: "night-carrot-dried", TOMATO_MINID: "day-tomato-herb", TOMATO_MININ: "night-tomato-herb", TOMATO_MINI_DRIEDD: "day-tomato-herb-dried", TOMATO_MINI_DRIEDN: "night-tomato-herb-dried", TOMATOD: "day-tomato", TOMATON: "night-tomato", INV_CARROT_OUT: "inv-carrot-out", INV_CARROT_IN: "inv-carrot-in", INV_CARROT_CLICK: "inv-carrot-click", INV_TOMATO_OUT: "inv-tomato-out", INV_TOMATO_IN: "inv-tomato-in", INV_TOMATO_CLICK: "inv-tomato-click", PLAYER0D: "day-player0", PLAYER0N: "night-player0", PLAYER1D: "day-player1", PLAYER1N: "night-player1", PLAYER2D: "day-player2", PLAYER2N: "night-player22", PLAYER3D: "day-player3", PLAYER3N: "night-player33", PLAYER4D: "day-player4", PLAYER4N: "night-player4", PLAYER5D: "day-player5", PLAYER5N: "night-player5", PLAYER6D: "day-player6", PLAYER6N: "night-player6", PLAYER7D: "day-player7", PLAYER7N: "night-player7", PLAYER8D: "day-player8", PLAYER8N: "night-player8", PLAYER9D: "day-player9", PLAYER9N: "night-player9", PLAYER10D: "day-player10", PLAYER10N: "night-player10", PLAYER11D: "day-player11", PLAYER11N: "night-player11", PLAYER12D: "day-player12", PLAYER12N: "night-player12", PLAYER13D: "day-player13", PLAYER13N: "night-player13", PLAYER14D: "day-player14", PLAYER14N: "night-player14", PLAYER15D: "day-player15", PLAYER15N: "night-player15", PLAYER16D: "day-player16", PLAYER16N: "night-player16", PLAYER17D: "day-player17", PLAYER17N: "night-player17", PLAYER18D: "day-player18", PLAYER18N: "night-player18", PLAYER19D: "day-player19", PLAYER19N: "night-player19", HAND0D: "day-hand-player0", HAND0N: "night-hand-player0", HAND1D: "day-hand-player1", HAND1N: "night-hand-player1", HAND2D: "day-hand-player2", HAND2N: "night-hand-player22", HAND3D: "day-hand-player3", HAND3N: "night-hand-player33", HAND4D: "day-hand-player4", HAND4N: "night-hand-player4", HAND5D: "day-hand-player5", HAND5N: "night-hand-player5", HAND6D: "day-hand-player6", HAND6N: "night-hand-player6", HAND7D: "day-hand-player7", HAND7N: "night-hand-player7", HAND8D: "day-hand-player8", HAND8N: "night-hand-player8", HAND9D: "day-hand-player9", HAND9N: "night-hand-player9", HAND10D: "day-hand-player10", HAND10N: "night-hand-player10", HAND11D: "day-hand-player11", HAND11N: "night-hand-player11", HAND12D: "day-hand-player12", HAND12N: "night-hand-player12", HAND13D: "day-hand-player13", HAND13N: "night-hand-player13", HAND14D: "day-hand-player14", HAND14N: "night-hand-player14", HAND15D: "day-hand-player15", HAND15N: "night-hand-player15", HAND16D: "day-hand-player16", HAND16N: "night-hand-player16", HAND17D: "day-hand-player17", HAND17N: "night-hand-player17", HAND18D: "day-hand-player18", HAND18N: "night-hand-player18", HAND19D: "day-hand-player19", HAND19N: "night-hand-player19", ACCESSORY4D: "day-accessory4", ACCESSORY4N: "night-accessory4", ACCESSORY9D: "day-accessory9", ACCESSORY9N: "night-accessory9", ACCESSORY10D: "day-accessory10", ACCESSORY10N: "night-accessory10", ACCESSORY11D: "day-accessory11", ACCESSORY11N: "night-accessory11", ACCESSORY12D: "day-accessory12", ACCESSORY12N: "night-accessory12", BAGD: "day-bag", BAGN: "night-bag", INV_BAG_OUT: "inv-bag-out", INV_BAG_IN: "inv-bag-in", INV_BAG_CLICK: "inv-bag-click", PITCHFORKD: "day-pitchfork", PITCHFORKN: "night-pitchfork", INV_PITCHFORK_OUT: "inv-pitchfork-out", INV_PITCHFORK_IN: "inv-pitchfork-in", INV_PITCHFORK_CLICK: "inv-pitchfork-click", INV_WOOD_DOOR_SPIKE_OUT: "inv-wood-spike-door-out", INV_WOOD_DOOR_SPIKE_IN: "inv-wood-spike-door-in", INV_WOOD_DOOR_SPIKE_CLICK: "inv-wood-spike-door-click", INV_STONE_DOOR_SPIKE_OUT: "inv-stone-spike-door-out", INV_STONE_DOOR_SPIKE_IN: "inv-stone-spike-door-in", INV_STONE_DOOR_SPIKE_CLICK: "inv-stone-spike-door-click", INV_GOLD_DOOR_SPIKE_OUT: "inv-gold-spike-door-out", INV_GOLD_DOOR_SPIKE_IN: "inv-gold-spike-door-in", INV_GOLD_DOOR_SPIKE_CLICK: "inv-gold-spike-door-click", INV_DIAMOND_DOOR_SPIKE_OUT: "inv-diamond-spike-door-out", INV_DIAMOND_DOOR_SPIKE_IN: "inv-diamond-spike-door-in", INV_DIAMOND_DOOR_SPIKE_CLICK: "inv-diamond-spike-door-click", INV_AMETHYST_DOOR_SPIKE_OUT: "inv-amethyst-spike-door-out", INV_AMETHYST_DOOR_SPIKE_IN: "inv-amethyst-spike-door-in", INV_AMETHYST_DOOR_SPIKE_CLICK: "inv-amethyst-spike-door-click", WOOD_DOOR_SPIKED: "day-wood-spike-door", WOOD_DOOR_SPIKEN: "night-wood-spike-door", STONE_DOOR_SPIKED: "day-stone-spike-door", STONE_DOOR_SPIKEN: "night-stone-spike-door", GOLD_DOOR_SPIKED: "day-gold-spike-door", GOLD_DOOR_SPIKEN: "night-gold-spike-door", DIAMOND_DOOR_SPIKED: "day-diamond-spike-door", DIAMOND_DOOR_SPIKEN: "night-diamond-spike-door", AMETHYST_DOOR_SPIKED: "day-amethyst-spike-door", AMETHYST_DOOR_SPIKEN: "night-amethyst-spike-door", INV_REIDITE_DOOR_SPIKE_OUT: "inv-reidite-spike-door-out", INV_REIDITE_DOOR_SPIKE_IN: "inv-reidite-spike-door-in", INV_REIDITE_DOOR_SPIKE_CLICK: "inv-reidite-spike-door-click", INV_REIDITE_DOOR_OUT: "inv-reidite-door-out", INV_REIDITE_DOOR_IN: "inv-reidite-door-in", INV_REIDITE_DOOR_CLICK: "inv-reidite-door-click", INV_REIDITE_SPIKE_OUT: "inv-reidite-spike-out", INV_REIDITE_SPIKE_IN: "inv-reidite-spike-in", INV_REIDITE_SPIKE_CLICK: "inv-reidite-spike-click", INV_REIDITE_WALL_OUT: "inv-reidite-wall-out", INV_REIDITE_WALL_IN: "inv-reidite-wall-in", INV_REIDITE_WALL_CLICK: "inv-reidite-wall-click", REIDITE_WALLD: "day-reidite-wall", REIDITE_WALLN: "night-reidite-wall", REIDITE_DOORD: "day-reidite-door", REIDITE_DOORN: "night-reidite-door", REIDITE_SPIKED: "day-reidite-spike", REIDITE_SPIKEN: "night-reidite-spike", REIDITE_DOOR_SPIKED: "day-reidite-spike-door", REIDITE_DOOR_SPIKEN: "night-reidite-spike-door", INV_PICK_REIDITE_OUT: "inv-reidite-pickaxe-out", INV_PICK_REIDITE_IN: "inv-reidite-pickaxe-in", INV_PICK_REIDITE_CLICK: "inv-reidite-pickaxe-click", PICK_REIDITED: "day-reidite-pickaxe", PICK_REIDITEN: "night-reidite-pickaxe", INV_HAMMER_REIDITE_OUT: "inv-reidite-hammer-out", INV_HAMMER_REIDITE_IN: "inv-reidite-hammer-in", INV_HAMMER_REIDITE_CLICK: "inv-reidite-hammer-click", HAMMER_REIDITED: "day-reidite-hammer", HAMMER_REIDITEN: "night-reidite-hammer", WATERMELOND: "day-watermelon1", WATERMELONN: "night-watermelon1", DRIED_WATERMELOND: "day-watermelon-dried1", DRIED_WATERMELONN: "night-watermelon-dried1", INV_WATERMELON_OUT: "inv-watermelon-out", INV_WATERMELON_IN: "inv-watermelon-in", INV_WATERMELON_CLICK: "inv-watermelon-click", BOATD: "day-boat", BOATN: "night-boat", BOAT_WAVED: "day-boat-wave", BOAT_WAVEN: "night-boat-wave", INV_BOAT_OUT: "inv-boat-out", INV_BOAT_IN: "inv-boat-in", INV_BOAT_CLICK: "inv-boat-click", PLANED: "day-plane", PLANEN: "night-plane", INV_PLANE_OUT: "inv-plane-out", INV_PLANE_IN: "inv-plane-in", INV_PLANE_CLICK: "inv-plane-click", SLEDD: "day-sled", SLEDN: "night-sled", SLED_WAVED: "day-sled-wave", SLED_WAVEN: "night-sled-wave", INV_SLED_OUT: "inv-sled-out", INV_SLED_IN: "inv-sled-in", INV_SLED_CLICK: "inv-sled-click", PIRATE_HATD: "day-pirate-hat", PIRATE_HATN: "night-pirate-hat", INV_PIRATE_HAT_OUT: "inv-pirate-hat-out", INV_PIRATE_HAT_IN: "inv-pirate-hat-in", INV_PIRATE_HAT_CLICK: "inv-pirate-hat-click", PENGUIND: "day-penguin", PENGUINN: "night-penguin", HURT_PENGUIN: "hurt-penguin", INV_PENGUIN_FEATHER: "inv-penguin-feather-click", INV_HAWK_FEATHER: "inv-hawk-feather-click", BOARD: "day-boar1", BOAR_TAMEDD: "day-boar1-tamed", BOAR_ANGRYD: "day-boar1-angry", BOARN: "night-boar1", BOAR_TAMEDN: "night-boar1-tamed", BOAR_ANGRYN: "night-boar1-angry", INV_MOUNT_BOAR_OUT: "inv-mount-boar-out", INV_MOUNT_BOAR_IN: "inv-mount-boar-in", INV_MOUNT_BOAR_CLICK: "inv-mount-boar-click", HURT_BOAR: "day-hurt-boar1", BOAR_STEP: "boar1-step", SADDLED: "day-saddle1", SADDLEN: "night-saddle1", INV_SADDLE_OUT: "inv-saddle-out", INV_SADDLE_IN: "inv-saddle-in", INV_SADDLE_CLICK: "inv-saddle-click", WAND1D: "day-magic-wand0", WAND1N: "night-magic-wand0", LIGHT_WAND1D: "day-light-wand1", LIGHT_WAND1N: "night-light-wand1", INV_WAND1_OUT: "inv-magic-wand0-out", INV_WAND1_IN: "inv-magic-wand0-in", INV_WAND1_CLICK: "inv-magic-wand0-click", WAND2D: "day-magic-wand1", WAND2N: "night-magic-wand1", LIGHT_WAND0D: "day-light-wand0", LIGHT_WAND0N: "night-light-wand0", INV_WAND2_OUT: "inv-magic-wand1-out", INV_WAND2_IN: "inv-magic-wand1-in", INV_WAND2_CLICK: "inv-magic-wand1-click", FIREFLYD: "day-firefly", FIREFLYN: "night-firefly", HURT_FIREFLY: "hurt-firefly", INV_FIREFLY_OUT: "inv-firefly-out", INV_FIREFLY_IN: "inv-firefly-in", INV_FIREFLY_CLICK: "inv-firefly-click", BABY_DRAGOND: "day-baby-dragon", BABY_DRAGONN: "night-baby-dragon", BABY_DRAGON_ATTACKD: "day-baby-dragon-angry", BABY_DRAGON_ATTACKN: "night-baby-dragon-angry", BABY_DRAGON_TAMEDD: "day-baby-dragon-tamed", BABY_DRAGON_TAMEDN: "night-baby-dragon-tamed", BABY_DRAGON_WING_LEFT_ATTACKD: "day-wing-dragon-left-angry", BABY_DRAGON_WING_LEFT_ATTACKN: "night-dragon-wing-left-angry", BABY_DRAGON_WING_RIGHT_ATTACKD: "day-wing-dragon-right-angry", BABY_DRAGON_WING_RIGHT_ATTACKN: "night-dragon-wing-right-angry", BABY_DRAGON_WING_LEFT_TAMEDD: "day-wing-dragon-left-tamed", BABY_DRAGON_WING_LEFT_TAMEDN: "night-dragon-wing-left-tamed", BABY_DRAGON_WING_RIGHT_TAMEDD: "day-wing-dragon-right-tamed", BABY_DRAGON_WING_RIGHT_TAMEDN: "night-wing-dragon-right-tamed", BABY_DRAGON_WING_LEFTD: "day-wing-dragon-left", BABY_DRAGON_WING_LEFTN: "night-dragon-wing-left", BABY_DRAGON_WING_RIGHTD: "day-wing-dragon-right", BABY_DRAGON_WING_RIGHTN: "night-wing-dragon-right", HURT_BABY_DRAGON: "hurt-baby-dragon", HURT_BABY_DRAGON_WING_LEFT: "hurt-baby-dragon-wing-left", HURT_BABY_DRAGON_WING_RIGHT: "hurt-baby-dragon-wing-right", INV_BABY_DRAGON_OUT: "inv-baby-dragon-out", INV_BABY_DRAGON_IN: "inv-baby-dragon-in", INV_BABY_DRAGON_CLICK: "inv-baby-dragon-click", BABY_LAVAD: "day-baby-lava", BABY_LAVAN: "night-baby-lava", BABY_LAVA_ATTACKD: "day-baby-lava-angry", BABY_LAVA_ATTACKN: "night-baby-lava-angry", BABY_LAVA_TAMEDD: "day-baby-lava-tamed", BABY_LAVA_TAMEDN: "night-baby-lava-tamed", BABY_LAVA_WING_LEFT_ATTACKD: "day-wing-lava-left-angry", BABY_LAVA_WING_LEFT_ATTACKN: "night-wing-lava-left-angry", BABY_LAVA_WING_RIGHT_ATTACKD: "day-wing-lava-right-angry", BABY_LAVA_WING_RIGHT_ATTACKN: "night-wing-lava-right-angry", BABY_LAVA_WING_LEFT_TAMEDD: "day-wing-lava-left-tamed", BABY_LAVA_WING_LEFT_TAMEDN: "night-wing-lava-left-tamed", BABY_LAVA_WING_RIGHT_TAMEDD: "day-wing-lava-right-tamed", BABY_LAVA_WING_RIGHT_TAMEDN: "night-wing-lava-right-tamed", BABY_LAVA_WING_LEFTD: "day-wing-lava-left", BABY_LAVA_WING_LEFTN: "night-wing-lava-left", BABY_LAVA_WING_RIGHTD: "day-wing-lava-right", BABY_LAVA_WING_RIGHTN: "night-wing-lava-right", HURT_BABY_LAVA: "hurt-baby-lava", HURT_BABY_LAVA_WING_LEFT: "hurt-baby-lava-wing-left", HURT_BABY_LAVA_WING_RIGHT: "hurt-baby-lava-wing-right", INV_BABY_LAVA_OUT: "inv-baby-lava-out", INV_BABY_LAVA_IN: "inv-baby-lava-in", INV_BABY_LAVA_CLICK: "inv-baby-lava-click", HAWKD: "day-falcon", HAWKN: "night-falcon", HAWK_ATTACKD: "day-falcon-angry", HAWK_ATTACKN: "night-falcon-angry", HAWK_GROUNDD: "day-falcon-ground", HAWK_GROUNDN: "night-falcon-ground", HAWK_GROUND_ATTACKD: "day-falcon-ground-angry", HAWK_GROUND_ATTACKN: "night-falcon-ground-angry", HAWK_WING_LEFTD: "day-falcon-wings-left", HAWK_WING_LEFTN: "night-falcon-wings-left", HAWK_WING_RIGHTD: "day-falcon-wings-right", HAWK_WING_RIGHTN: "night-falcon-wings-right", HAWK_WING_LEFT_ATTACKD: "day-falcon-angry-wings-left", HAWK_WING_LEFT_ATTACKN: "night-falcon-angry-wings-left", HAWK_WING_RIGHT_ATTACKD: "day-falcon-angry-wings-right", HAWK_WING_RIGHT_ATTACKN: "night-falcon-angry-wings-right", HAWK_WING_LEFT_TAMEDD: "day-falcon-wings-left-tamed", HAWK_WING_LEFT_TAMEDN: "night-falcon-wings-left-tamed", HAWK_WING_RIGHT_TAMEDD: "day-falcon-wings-right-tamed", HAWK_WING_RIGHT_TAMEDN: "night-falcon-wings-right-tamed", HAWK_TAMEDD: "day-falcon-tamed", HAWK_TAMEDN: "night-falcon-tamed", HURT_HAWK_GROUND: "hurt-falcon-ground", HURT_HAWK: "hurt-falcon", HURT_HAWK_WING_LEFT: "hurt-falcon-wings-left", HURT_HAWK_WING_RIGHT: "hurt-falcon-wings-right", INV_HAWK_OUT: "inv-falcon-out", INV_HAWK_IN: "inv-falcon-in", INV_HAWK_CLICK: "inv-falcon-click", CRAB_BOSSD: "day-crab-boss", CRAB_BOSSN: "night-crab-boss", CRAB_BOSS_ATTACKD: "day-crab-boss-angry", CRAB_BOSS_ATTACKN: "night-crab-boss-angry", CRAB_BOSS_TAMEDD: "day-crab-boss-tamed", CRAB_BOSS_TAMEDN: "night-crab-boss-tamed", CRAB_BOSS_CLAW_LEFT_ATTACKD: "day-crab-boss-claw-left-attack", CRAB_BOSS_CLAW_LEFT_ATTACKN: "night-crab-boss-claw-left-attack", CRAB_BOSS_CLAW_RIGHT_ATTACKD: "day-crab-boss-claw-right-attack", CRAB_BOSS_CLAW_RIGHT_ATTACKN: "night-crab-boss-claw-right-attack", CRAB_BOSS_CLAW_LEFT_TAMEDD: "day-crab-boss-claw-left-tamed", CRAB_BOSS_CLAW_LEFT_TAMEDN: "night-crab-boss-claw-left-tamed", CRAB_BOSS_CLAW_RIGHT_TAMEDD: "day-crab-boss-claw-right-tamed", CRAB_BOSS_CLAW_RIGHT_TAMEDN: "night-crab-boss-claw-right-tamed", CRAB_BOSS_CLAW_LEFTD: "day-crab-boss-claw-left", CRAB_BOSS_CLAW_LEFTN: "night-crab-boss-claw-left", CRAB_BOSS_CLAW_RIGHTD: "day-crab-boss-claw-right", CRAB_BOSS_CLAW_RIGHTN: "night-crab-boss-claw-right", HURT_CRAB_BOSS: "hurt-crab-boss", HURT_CRAB_BOSS_CLAW_LEFT: "hurt-crab-boss-claw-left", HURT_CRAB_BOSS_CLAW_RIGHT: "hurt-crab-boss-claw-right", HEAL_CRAB_BOSS: "heal-crab-boss", HEAL_CRAB_BOSS_CLAW_LEFT: "heal-crab-boss-claw-left", HEAL_CRAB_BOSS_CLAW_RIGHT: "heal-crab-boss-claw-right", CRAB_STEP: "crab-step", INV_CRAB_BOSS_OUT: "inv-crab-boss-out", INV_CRAB_BOSS_IN: "inv-crab-boss-in", INV_CRAB_BOSS_CLICK: "inv-crab-boss-click", CACTUSD: "day-cactus10", CACTUSN: "night-cactus10", INV_CACTUS_OUT: "inv-cactus-out", INV_CACTUS_IN: "inv-cactus-in", INV_CACTUS_CLICK: "inv-cactus-click", SCORPIOND: "day-scorpion", SCORPIONN: "night-scorpion", SCORPION_HAND_LEFTD: "day-scorpion-hand-left", SCORPION_HAND_LEFTN: "night-scorpion-hand-left", SCORPION_HAND_RIGHTD: "day-scorpion-hand-right", SCORPION_HAND_RIGHTN: "night-scorpion-hand-right", HURT_SCORPION: "hurt-scorpion", HURT_SCORPION_HAND_LEFT: "hurt-scorpion-hand-left", HURT_SCORPION_HAND_RIGHT: "hurt-scorpion-hand-right", VULTURED: "day-vulture", VULTUREN: "night-vulture", VULTURE_ATTACKD: "day-vulture-angry", VULTURE_ATTACKN: "night-vulture-angry", VULTURE_GROUNDD: "day-vulture-ground", VULTURE_GROUNDN: "night-vulture-ground", VULTURE_GROUND_ATTACKD: "day-vulture-ground-angry", VULTURE_GROUND_ATTACKN: "night-vulture-ground-angry", VULTURE_WING_LEFTD: "day-vulture-wings-left", VULTURE_WING_LEFTN: "night-vulture-wings-left", VULTURE_WING_RIGHTD: "day-vulture-wings-right", VULTURE_WING_RIGHTN: "night-vulture-wings-right", VULTURE_WING_LEFT_ATTACKD: "day-vulture-angry-wings-left", VULTURE_WING_LEFT_ATTACKN: "night-vulture-angry-wings-left", VULTURE_WING_RIGHT_ATTACKD: "day-vulture-angry-wings-right", VULTURE_WING_RIGHT_ATTACKN: "night-vulture-angry-wings-right", VULTURE_WING_LEFT_TAMEDD: "day-vulture-wings-left-tamed", VULTURE_WING_LEFT_TAMEDN: "night-vulture-wings-left-tamed", VULTURE_WING_RIGHT_TAMEDD: "day-vulture-wings-right-tamed", VULTURE_WING_RIGHT_TAMEDN: "night-vulture-wings-right-tamed", VULTURE_TAMEDD: "day-vulture-tamed", VULTURE_TAMEDN: "night-vulture-tamed", HURT_VULTURE_GROUND: "hurt-vulture-ground", HURT_VULTURE: "hurt-vulture", HURT_VULTURE_WING_LEFT: "hurt-vulture-wings-left", HURT_VULTURE_WING_RIGHT: "hurt-vulture-wings-right", ALOE_VERAD: "day-aloe-vera", ALOE_VERAN: "night-aloe-vera", INV_ALOE_VERA_OUT: "inv-aloe-vera-out", INV_ALOE_VERA_IN: "inv-aloe-vera-in", INV_ALOE_VERA_CLICK: "inv-aloe-vera-click", ALOE_VERA_GROWND: "day-aloe-vera-grown", ALOE_VERA_GROWNN: "night-aloe-vera-grown", ALOE_VERA_DRIEDD: "day-aloe-vera-dried", ALOE_VERAN_DRIEDN: "night-aloe-vera-dried", TURBAN1D: "day-turban1", TURBAN1N: "night-turban1", TURBAN2D: "day-turban2", TURBAN2N: "night-turban2", INV_TURBAN2_OUT: "inv-turban2-out", INV_TURBAN2_IN: "inv-turban2-in", INV_TURBAN2_CLICK: "inv-turban2-click", INV_TURBAN1_OUT: "inv-turban1-out", INV_TURBAN1_IN: "inv-turban1-in", INV_TURBAN1_CLICK: "inv-turban1-click", PITCHFORK2D: "day-pitchfork2", PITCHFORK2N: "night-pitchfork2", INV_PITCHFORK2_OUT: "inv-pitchfork2-out", INV_PITCHFORK2_IN: "inv-pitchfork2-in", INV_PITCHFORK2_CLICK: "inv-pitchfork2-click", INV_PITCHFORK_PART_CLICK: "inv-gold-fork-click", INV_PILOT_GLASSES_CLICK: "inv-pilot-glasses-click", PILOT_HELMETD: "day-pilot-helmet", PILOT_HELMETN: "night-pilot-helmet", INV_PILOT_HELMET_OUT: "inv-pilot-helmet-out", INV_PILOT_HELMET_IN: "inv-pilot-helmet-in", INV_PILOT_HELMET_CLICK: "inv-pilot-helmet-click", SAND_WORM0D: "day-sandworm0", SAND_WORM1D: "day-sandworm1", SAND_WORM2D: "day-sandworm2", SAND_WORM0N: "night-sandworm0", SAND_WORM1N: "night-sandworm1", SAND_WORM2N: "night-sandworm2", HURT_SAND_WORM0: "hurt-sandworm0", HURT_SAND_WORM1: "hurt-sandworm1", HURT_SAND_WORM2: "hurt-sandworm2", INV_VULTURE_FEATHER: "inv-vulture-feather-click", EMERALD0D: "day-emerald0", EMERALD0N: "night-emerald0", EMERALD1D: "day-emerald1", EMERALD1N: "night-emerald1", EMERALD2D: "day-emerald2", EMERALD2N: "night-emerald2", INV_EMERALD: "inv-emerald-click", INV_SANDWORM_JUICE_OUT: "inv-sworm-juice-out", INV_SANDWORM_JUICE_IN: "inv-sworm-juice-in", INV_SANDWORM_JUICE_CLICK: "inv-sworm-juice-click", EMERALD_MACHINED: "day-point-machine", EMERALD_MACHINEN: "night-point-machine", EMERALD_MACHINE_HOLED: "day-point-machine-hole", EMERALD_MACHINE_HOLEN: "night-point-machine-hole", EMERALD_MACHINE_GROUNDD: "day-point-machine-ground", EMERALD_MACHINE_GROUNDN: "night-point-machine-ground", EMERALD_MACHINE_ROTATED: "day-point-machine-rotate", EMERALD_MACHINE_ROTATEN: "night-point-machine-rotate", INV_EMERALD_MACHINE_OUT: "inv-point-machine-out", INV_EMERALD_MACHINE_IN: "inv-point-machine-in", INV_EMERALD_MACHINE_CLICK: "inv-point-machine-click", EXTRACTOR_MACHINE0_STONED: "day-extractor-machine0-stone", EXTRACTOR_MACHINE0_STONEN: "night-extractor-machine0-stone", EXTRACTOR_MACHINE_STONED: "day-extractor-machine-stone", EXTRACTOR_MACHINE_STONEN: "night-extractor-machine-stone", INV_EXTRACTOR_MACHINE_STONE_OUT: "inv-extractor-machine-stone-out", INV_EXTRACTOR_MACHINE_STONE_IN: "inv-extractor-machine-stone-in", INV_EXTRACTOR_MACHINE_STONE_CLICK: "inv-extractor-machine-stone-click", EXTRACTOR_MACHINE0_GOLDD: "day-extractor-machine0-gold", EXTRACTOR_MACHINE0_GOLDN: "night-extractor-machine0-gold", EXTRACTOR_MACHINE_GOLDD: "day-extractor-machine-gold", EXTRACTOR_MACHINE_GOLDN: "night-extractor-machine-gold", INV_EXTRACTOR_MACHINE_GOLD_OUT: "inv-extractor-machine-gold-out", INV_EXTRACTOR_MACHINE_GOLD_IN: "inv-extractor-machine-gold-in", INV_EXTRACTOR_MACHINE_GOLD_CLICK: "inv-extractor-machine-gold-click", EXTRACTOR_MACHINE0_DIAMONDD: "day-extractor-machine0-diamond", EXTRACTOR_MACHINE0_DIAMONDN: "night-extractor-machine0-diamond", DIAMOND_EXTRACTORD: "day-extractor-machine-diamond", DIAMOND_EXTRACTORN: "night-extractor-machine-diamond", INV_DIAMOND_EXTRACTOR_OUT: "inv-extractor-machine-diamond-out", INV_DIAMOND_EXTRACTOR_IN: "inv-extractor-machine-diamond-in", INV_DIAMOND_EXTRACTOR_CLICK: "inv-extractor-machine-diamond-click", EXTRACTOR_MACHINE0_AMETHYSTD: "day-extractor-machine0-amethyst", EXTRACTOR_MACHINE0_AMETHYSTN: "night-extractor-machine0-amethyst", EXTRACTOR_MACHINE_AMETHYSTD: "day-extractor-machine-amethyst", EXTRACTOR_MACHINE_AMETHYSTN: "night-extractor-machine-amethyst", INV_EXTRACTOR_MACHINE_AMETHYST_OUT: "inv-extractor-machine-amethyst-out", INV_EXTRACTOR_MACHINE_AMETHYST_IN: "inv-extractor-machine-amethyst-in", INV_EXTRACTOR_MACHINE_AMETHYST_CLICK: "inv-extractor-machine-amethyst-click", EXTRACTOR_MACHINE0_REIDITED: "day-extractor-machine0-reidite", EXTRACTOR_MACHINE0_REIDITEN: "night-extractor-machine0-reidite", EXTRACTOR_MACHINE_REIDITED: "day-extractor-machine-reidite", EXTRACTOR_MACHINE_REIDITEN: "night-extractor-machine-reidite", INV_EXTRACTOR_MACHINE_REIDITE_OUT: "inv-extractor-machine-reidite-out", INV_EXTRACTOR_MACHINE_REIDITE_IN: "inv-extractor-machine-reidite-in", INV_EXTRACTOR_MACHINE_REIDITE_CLICK: "inv-extractor-machine-reidite-click", EXTRACTOR_CASES: "extractor-cases", HEND: "day-golden-hen", HENN: "night-golden-hen", CHICKEND: "day-golden-chicken", CHICKENN: "night-golden-chicken", HURT_GOLDEN_HEN: "hurt-golden-hen", HURT_GOLDEN_CHICKEN: "hurt-golden-chicken", /// NEW INTERFACE /// LOGOTYPE LOGO_INTERFACE: "logo-interface", ///DESCRIPTIONS HOVER // FOREST_MODE_HOVER: "forest-mode-hover", NORMAL_MODE_HOVER: "normal-mode-hover", // VAMPIRE_MODE_HOVER: "vampire-mode-hover", // ZOMBIE_MODE_HOVER: "zombie-mode-hover", MODE_COMMUNITY_HOVER: "community-mode-hover2", MODE_EXPERIMENTAL_HOVER: "experimental-mode-hover", ///GAME MODES // ZOMBIE_MODE_OUT: "zombie-mode-out", // ZOMBIE_MODE_IN: "zombie-mode-in", // ZOMBIE_MODE_CLICK: "zombie-mode-click", // VAMPIRE_MODE_OUT: "vampire-mode-out", // VAMPIRE_MODE_IN: "vampire-mode-in", // VAMPIRE_MODE_CLICK: "vampire-mode-click", NORMAL_MODE_OUT: "normal-mode-out", NORMAL_MODE_IN: "normal-mode-in", NORMAL_MODE_CLICK: "normal-mode-click", // FOREST_MODE_OUT: "forest-mode-out", // FOREST_MODE_IN: "forest-mode-in", // FOREST_MODE_CLICK: "forest-mode-click", MODE_COMMUNITY_OUT: "community-mode-out", MODE_COMMUNITY_IN: "community-mode-in", MODE_COMMUNITY_CLICK: "community-mode-click", MODE_EXPERIMENTAL_OUT: "experimental-modes-out", MODE_EXPERIMENTAL_IN: "experimental-modes-in", MODE_EXPERIMENTAL_CLICK: "experimental-modes-click", ///TOP RIGHT LINKS BUTTON YOUTUBE_BUTTON_OUT: "youtube-button-out", YOUTUBE_BUTTON_IN: "youtube-button-in", YOUTUBE_BUTTON_CLICK: "youtube-button-click", DISCORD_BUTTON_OUT: "discord-button-out", DISCORD_BUTTON_IN: "discord-button-in", DISCORD_BUTTON_CLICK: "discord-button-click", MERCH_BUTTON_OUT: "merch-button-out", MERCH_BUTTON_IN: "merch-button-in", MERCH_BUTTON_CLICK: "merch-button-click", TERMINAL_BUTTON_OUT: "terminal-button-out", TERMINAL_BUTTON_IN: "terminal-button-in", TERMINAL_BUTTON_CLICK: "terminal-button-click", RESTART_OUT: "restart-out", RESTART_IN: "restart-in", RESTART_CLICK: "restart-click", GUIDE_OUT: "guide-out", GUIDE_IN: "guide-in", GUIDE_CLICK: "guide-click", COPY_PASTE_OUT: "copy-paste-out", COPY_PASTE_IN: "copy-paste-in", COPY_PASTE_CLICK: "copy-paste-click", ///RIGHT LINKS_BG: "link-buttons-bg", CHANGELOG_BOX: "changelog-box2", CHANGELOG_BUTTON_OUT: "changelog_29", /// LOGIN BUTTONS PROFILE_BUTTON_OUT: "profile-button-out", PROFILE_BUTTON_IN: "profile-button-in", PROFILE_BUTTON_CLICK: "profile-button-click", LOGIN_BUTTON_OUT: "login-button-out", LOGIN_BUTTON_IN: "login-button-in", LOGIN_BUTTON_CLICK: "login-button-click", LOGIN_GOOGLE_OUT: "login-google-out", LOGIN_GOOGLE_IN: "login-google-in", LOGIN_GOOGLE_CLICK: "login-google-click", ACCOUNT_BOX: "account-box", ACCOUNT_MAINTENANCE: "account-under-maintenance", ///BUTTONS CLOSE_BUTTON_OUT: "close-button-account-out", CLOSE_BUTTON_IN: "close-button-account-in", CLOSE_BUTTON_CLICK: "close-button-account-click", PLAY_BUTTON_OUT: "play-button-out", PLAY_BUTTON_IN: "play-button-in", PLAY_BUTTON_CLICK: "play-button-click", MODIFY_NAME_OUT: "modify-name-out", MODIFY_NAME_IN: "modify-name-in", MODIFY_NAME_CLICK: "modify-name-click", YES_BUTTON_OUT: "yes-button-out", YES_BUTTON_IN: "yes-button-in", YES_BUTTON_CLICK: "yes-button-click", YES_300_BUTTON_OUT: "yes-300-button-out", YES_300_BUTTON_IN: "yes-300-button-in", YES_300_BUTTON_CLICK: "yes-300-button-click", NO_BUTTON_OUT: "no-button-out", NO_BUTTON_IN: "no-button-in", NO_BUTTON_CLICK: "no-button-click", NO_THANKS_BUTTON_OUT: "no-thanks-button-out", NO_THANKS_BUTTON_IN: "no-thanks-button-in", NO_THANKS_BUTTON_CLICK: "no-thanks-button-click", SHOP_BUTTON_OUT: "shop-button-out", SHOP_BUTTON_IN: "shop-button-in", SHOP_BUTTON_CLICK: "shop-button-click", LOGOUT_OUT: "logout-out", LOGOUT_IN: "logout-in", LOGOUT_CLICK: "logout-click", TERMS_BUTTON_OUT: "terms-button-out", TERMS_BUTTON_IN: "terms-button-in", TERMS_BUTTON_CLICK: "terms-button-click", ///LEFT ICONS TUTORIAL_ICON: "tutorial-icon", SKINS_ICON: "skins-icon", SHOP_ICON: "shop-icon", PAINT_ICON: "paint-icon", LEADERBOARD_ICON: "leaderboard-icon", START_ICON: "start-icon", PROFILE_ICON: "profile-icon", SERVER_ACCESS_ICON: "server-access-icon2", ICONS_BG_BUTTON_OUT: "button-homepage-bg-out", ICONS_BG_BUTTON_IN: "button-homepage-bg-in", ICONS_BG_BUTTON_CLICK: "button-homepage-bg-click", ICONS_BOTTOM_BG_BUTTON_OUT: "button-bottom-homepage-bg-out", ICONS_BOTTOM_BG_BUTTON_IN: "button-bottom-homepage-bg-in", ICONS_BOTTOM_BG_BUTTON_CLICK: "button-bottom-homepage-bg-click", ///TOP LEFT PLAYER RESUME AVATAR_RESUME: "lvl-player", AVATAR_LVL1: "avatar-player", AVATAR_LVL2: "avatar-player1", AVATAR_LVL3: "avatar-player2", AVATAR_LVL4: "avatar-player3", AVATAR_LVL5: "avatar-player4", AVATAR_LVL6: "avatar-player5", AVATAR_LVL7: "avatar-player6", AVATAR_LVL8: "avatar-player7", AVATAR_LVL9: "avatar-player8", AVATAR_LVL10: "avatar-player9", AVATAR_LVL11: "avatar-player10", AVATAR_LVL12: "avatar-player11", AVATAR_LVL13: "avatar-player12", AVATAR_LVL14: "avatar-player13", AVATAR_LVL15: "avatar-player14", AVATAR_LVL16: "avatar-player14", AVATAR_LVL17: "avatar-player14", AVATAR_LVL18: "avatar-player14", GOLDEN_BREAD: "golden-bread", BUY_BREAD_OUT: "buy-bread-out", BUY_BREAD_IN: "buy-bread-in", BUY_BREAD_CLICK: "buy-bread-click", GAUGE: "gauge", ///WINDOWS BOXES SEASON_4: "season-4-out", SEASON_4_IN: "season-4-in", SEASON_4_OUT: "season-4-click", SEASON4_BOX: "season4-box", SEASON_5: "season-5-out", SEASON_5_IN: "season-5-in", SEASON_5_OUT: "season-5-click", SEASON5_BOX: "season5-box", PROFILE_BOX: "profile2-box", SKINS_BOX: "skins-box", SHOP_BOX: "shop-box", PRIVATE_SERVER_BOX: "private-server-box", SERVER_LOCATION_BOX: "location-box", SERVER_DURATION_BOX: "server-duration-box", TUTORIAL_BOX: "tutorial-box", LEADERBOARD_BOX: "leaderboard1-box", BUY_BREAD_BOX: "buy-breads-box", BAG_BOX: "bag-box", CRATE_BOX: "deadbox-box", BOOK_BOX: "book-box", ACCESSORIES_BOX: "accessories-box", CUSTOM_SKIN_BOX: "customskin-box", BAG_REMAIN_BOX: "bag-lasts", SERVER_REMAIN_BOX: "server-lasts", SERVER_ACCESS_BOX: "server-access-box2", LOOT_BOX: "lootbox-box", CHANGE_NICKNAME1_BOX: "change-nickname0", CHANGE_NICKNAME0_BOX: "change-nickname1", CHEATING_BOX: "cheating-box", DAILY_QUEST_BOX: "daily-quest-box", DAILY_5_BREAD: "daily-5-bread", DAILY_10_BREAD: "daily-10-bread", DAILY_VALID: "daily-valid", //PROFILE NORMAL_PROFILE_OUT: "normal-profile-out", NORMAL_PROFILE_IN: "normal-profile-in", NORMAL_PROFILE_CLICK: "normal-profile-click", FOREST_PROFILE_OUT: "forest-profile-out", FOREST_PROFILE_IN: "forest-profile-in", FOREST_PROFILE_CLICK: "forest-profile-click", ZOMBIE_PROFILE_OUT: "zombie-profile-out", ZOMBIE_PROFILE_IN: "zombie-profile-in", ZOMBIE_PROFILE_CLICK: "zombie-profile-click", VAMPIRE_PROFILE_OUT: "vampire-profile-out", VAMPIRE_PROFILE_IN: "vampire-profile-in", VAMPIRE_PROFILE_CLICK: "vampire-profile-click", TOTAL_PROFILE_OUT: "total-profile-out", TOTAL_PROFILE_IN: "total-profile-in", TOTAL_PROFILE_CLICK: "total-profile-click", SEASON1_PROFILE_OUT: "season1-profile-out", SEASON1_PROFILE_IN: "season1-profile-in", SEASON1_PROFILE_CLICK: "season1-profile-click", SEASON2_PROFILE_OUT: "season2-profile-out", SEASON2_PROFILE_IN: "season2-profile-in", SEASON2_PROFILE_CLICK: "season2-profile-click", SEASON3_PROFILE_OUT: "season3-profile-out", SEASON3_PROFILE_IN: "season3-profile-in", SEASON3_PROFILE_CLICK: "season3-profile-click", SEASON4_PROFILE_OUT: "season4-profile-out", SEASON4_PROFILE_IN: "season4-profile-in", SEASON4_PROFILE_CLICK: "season4-profile-click", SEASON5_PROFILE_OUT: "season5-profile-out", SEASON5_PROFILE_IN: "season5-profile-in", SEASON5_PROFILE_CLICK: "season5-profile-click", ///COSMETICS LOCKED_SKIN_ALERT: "locked-skin-alert", LOCKED_CUSTOM_ALERT: "locked-custom-alert", RED_LOCKED: "bg-red-locked", SKIN_BUTTON_OUT: "skin-button-out", SKIN_BUTTON_IN: "skin-button-in", SKIN_BUTTON_CLICK: "skin-button-click", ACCESSORY_BUTTON_OUT: "accessory-button-out", ACCESSORY_BUTTON_IN: "accessory-button-in", ACCESSORY_BUTTON_CLICK: "accessory-button-click", BAG_BUTTON_OUT: "bag-button-out", BAG_BUTTON_IN: "bag-button-in", BAG_BUTTON_CLICK: "bag-button-click", BOOK_BUTTON_OUT: "book-button-out", BOOK_BUTTON_IN: "book-button-in", BOOK_BUTTON_CLICK: "book-button-click", CRATE_BUTTON_OUT: "deadbox-button-out", CRATE_BUTTON_IN: "deadbox-button-in", CRATE_BUTTON_CLICK: "deadbox-button-click", LOOT_BUTTON_OUT: "loot-button-out", LOOT_BUTTON_IN: "loot-button-in", LOOT_BUTTON_CLICK: "loot-button-click", FREE_ITEM_OUT: "free-item-out", FREE_ITEM_IN: "free-item-in", FREE_ITEM_CLICK: "free-item-click", WOOD_ITEM_OUT: "wood-item-out", WOOD_ITEM_IN: "wood-item-in", WOOD_ITEM_CLICK: "wood-item-click", STONE_ITEM_OUT: "stone-item", STONE_ITEM_IN: "stone-item-in", STONE_ITEM_CLICK: "stone-item-click", GOLD_ITEM_OUT: "gold-item", GOLD_ITEM_IN: "gold-item-in", GOLD_ITEM_CLICK: "gold-item-click", DIAMOND_ITEM_OUT: "diamond-item", DIAMOND_ITEM_IN: "diamond-item-in", DIAMOND_ITEM_CLICK: "diamond-item-click", AMETHYST_ITEM_OUT: "amethyst-item", AMETHYST_ITEM_IN: "amethyst-item-in", AMETHYST_ITEM_CLICK: "amethyst-item-click", REIDITE_ITEM_OUT: "reidite-item", REIDITE_ITEM_IN: "reidite-item-in", REIDITE_ITEM_CLICK: "reidite-item-click", SPECIAL_ITEM_OUT: "special-item-out", SPECIAL_ITEM_IN: "special-item-in", SPECIAL_ITEM_CLICK: "special-item-click", LEVEL_ITEM_OUT: "level-item-out", LEVEL_ITEM_IN: "level-item-in", LEVEL_ITEM_CLICK: "level-item-click", SKIN_PREVIOUS_OUT: "skin-previous-out", SKIN_PREVIOUS_IN: "skin-previous-in", SKIN_PREVIOUS_CLICK: "skin-previous-click", SKIN_NEXT_OUT: "skin-next-out", SKIN_NEXT_IN: "skin-next-in", SKIN_NEXT_CLICK: "skin-next-click", BACK_BUTTON_OUT: "back-button-out", BACK_BUTTON_IN: "back-button-in", BACK_BUTTON_CLICK: "back-button-click", ///SHOP GET_MORE_BUTTON_OUT: "get-more-button-out", GET_MORE_BUTTON_IN: "get-more-button-in", GET_MORE_BUTTON_CLICK: "get-more-button-click", CURRENCY1_OUT: "currency1-out", CURRENCY1_IN: "currency1-in", CURRENCY1_CLICK: "currency1-click", CURRENCY2_OUT: "currency2-out", CURRENCY2_IN: "currency2-in", CURRENCY2_CLICK: "currency2-click", CURRENCY3_OUT: "currency3-out", CURRENCY3_IN: "currency3-in", CURRENCY3_CLICK: "currency3-click", CURRENCY4_OUT: "currency4-out", CURRENCY4_IN: "currency4-in", CURRENCY4_CLICK: "currency4-click", CURRENCY5_OUT: "currency5-out", CURRENCY5_IN: "currency5-in", CURRENCY5_CLICK: "currency5-click", PRICE1_OUT: "price1-out", PRICE1_IN: "price1-in", PRICE1_CLICK: "price1-click", PRICE2_OUT: "price2-out", PRICE2_IN: "price2-in", PRICE2_CLICK: "price2-click", PRICE3_OUT: "price3-out", PRICE3_IN: "price3-in", PRICE3_CLICK: "price3-click", PRICE4_OUT: "price4-out", PRICE4_IN: "price4-in", PRICE4_CLICK: "price4-click", PRICE5_OUT: "price5-out", PRICE5_IN: "price5-in", PRICE5_CLICK: "price5-click", BUY_PRIVATE_SERVER_OUT: "buy-private-server-out", BUY_PRIVATE_SERVER_IN: "buy-private-server-in", BUY_PRIVATE_SERVER_CLICK: "buy-private-server-click", ATLANTA_OUT: "atlanta-out", ATLANTA_IN: "atlanta-in", ATLANTA_CLICK: "atlanta-click", DALLAS_OUT: "dallas-out", DALLAS_IN: "dallas-in", DALLAS_CLICK: "dallas-click", FREMONT_OUT: "fremont-out", FREMONT_IN: "fremont-in", FREMONT_CLICK: "fremont-click", NEWARK_OUT: "newark-out", NEWARK_IN: "newark-in", NEWARK_CLICK: "newark-click", TORONTO_OUT: "toronto-out", TORONTO_IN: "toronto-in", TORONTO_CLICK: "toronto-click", SINGAPORE_OUT: "singapore-out", SINGAPORE_IN: "singapore-in", SINGAPORE_CLICK: "singapore-click", FRANKFURT_OUT: "frankfurt-out", FRANKFURT_IN: "frankfurt-in", FRANKFURT_CLICK: "frankfurt-click", LONDON_OUT: "london-out", LONDON_IN: "london-in", LONDON_CLICK: "london-click", MUMBAI_OUT: "mumbai-out", MUMBAI_IN: "mumbai-in", MUMBAI_CLICK: "mumbai-click", TOKYO_OUT: "tokyo-out", TOKYO_IN: "tokyo-in", TOKYO_CLICK: "tokyo-click", YES_LOCATION_OUT: "yes-location-out", YES_LOCATION_IN: "yes-location-in", YES_LOCATION_CLICK: "yes-location-click", DAYS3_OUT: "3days-out", DAYS3_IN: "3days-in", DAYS3_CLICK: "3days-click", DAYS7_OUT: "7days-out", DAYS7_IN: "7days-in", DAYS7_CLICK: "7days-click", DAYS30_OUT: "30days-out", DAYS30_IN: "30days-in", DAYS30_CLICK: "30days-click", DAYS90_OUT: "90days-out", DAYS90_IN: "90days-in", DAYS90_CLICK: "90days-click", ///SPINS SPIN1: "spin1", // SPIN2: "spin2", SPIN3: "spin3", SPIN4: "spin4", SPIN5: "spin5", SPIN6: "spin6", ARROW_SPIN: "arrow-spin", SPIN_BUTTON_1_OUT: "spin-button-1-out", //50 SPIN_BUTTON_1_IN: "spin-button-1-in", SPIN_BUTTON_1_CLICK: "spin-button-1-click", SPIN_BUTTON_2_OUT: "spin-button-2-out", //100 SPIN_BUTTON_2_IN: "spin-button-2-in", SPIN_BUTTON_2_CLICK: "spin-button-2-click", SPIN_BUTTON_3_OUT: "spin-button-3-out", //150 SPIN_BUTTON_3_IN: "spin-button-3-in", SPIN_BUTTON_3_CLICK: "spin-button-3-click", SPIN_BUTTON_4_OUT: "spin-button-4-out", //300 SPIN_BUTTON_4_IN: "spin-button-4-in", SPIN_BUTTON_4_CLICK: "spin-button-4-click", SPIN_BUTTON_5_OUT: "spin-button-5-out", //600 SPIN_BUTTON_5_IN: "spin-button-5-in", SPIN_BUTTON_5_CLICK: "spin-button-5-click", SPIN_LIGHT: "spin-light", ///LEADERBOARD TIME_LEADERBOARD_OUT: "time-leaderboard-out", TIME_LEADERBOARD_IN: "time-leaderboard-in", TIME_LEADERBOARD_CLICK: "time-leaderboard-click", SCORE_LEADERBOARD_OUT: "score-leaderboard-out", SCORE_LEADERBOARD_IN: "score-leaderboard-in", SCORE_LEADERBOARD_CLICK: "score-leaderboard-click", LVL_LEADERBOARD_OUT: "lvl-leaderboard-out", LVL_LEADERBOARD_IN: "lvl-leaderboard-in", LVL_LEADERBOARD_CLICK: "lvl-leaderboard-click", KILL_LEADERBOARD_OUT: "kill-leaderboard-out", KILL_LEADERBOARD_IN: "kill-leaderboard-in", KILL_LEADERBOARD_CLICK: "kill-leaderboard-click", ALL_LEADERBOARD_OUT: "all-leaderboard-out", ALL_LEADERBOARD_IN: "all-leaderboard-in", ALL_LEADERBOARD_CLICK: "all-leaderboard-click", TODAY_LEADERBOARD_OUT: "today-leaderboard-out", TODAY_LEADERBOARD_IN: "today-leaderboard-in", TODAY_LEADERBOARD_CLICK: "today-leaderboard-click", WEEK_LEADERBOARD_OUT: "week-leaderboard-out", WEEK_LEADERBOARD_IN: "week-leaderboard-in", WEEK_LEADERBOARD_CLICK: "week-leaderboard-click", SEASON1_LEADERBOARD_OUT: "season1-out", SEASON1_LEADERBOARD_IN: "season1-in", SEASON1_LEADERBOARD_CLICK: "season1-click", SEASON2_LEADERBOARD_OUT: "season2--out", SEASON2_LEADERBOARD_IN: "season2--in", SEASON2_LEADERBOARD_CLICK: "season2--click", SEASON3_LEADERBOARD_OUT: "season3-out", SEASON3_LEADERBOARD_IN: "season3-in", SEASON3_LEADERBOARD_CLICK: "season3-click", SEASON4_LEADERBOARD_OUT: "season4-out", SEASON4_LEADERBOARD_IN: "season4-in", SEASON4_LEADERBOARD_CLICK: "season4-click", SEASON5_LEADERBOARD_OUT: "season5-out", SEASON5_LEADERBOARD_IN: "season5-in", SEASON5_LEADERBOARD_CLICK: "season5-click", //LEADERBOARD_SOON : 'img/leaderboard-soon.png', TOTAL_LEAD_OUT: "total-lead-out", TOTAL_LEAD_IN: "total-lead-in", TOTAL_LEAD_CLICK: "total-lead-click", NORMAL_LEAD_OUT: "normal-lead-out", NORMAL_LEAD_IN: "normal-lead-in", NORMAL_LEAD_CLICK: "normal-lead-click", FOREST_LEAD_OUT: "forest-lead-out", FOREST_LEAD_IN: "forest-lead-in", FOREST_LEAD_CLICK: "forest-lead-click", VAMPIRE_LEAD_OUT: "vampire-lead-out", VAMPIRE_LEAD_IN: "vampire-lead-in", VAMPIRE_LEAD_CLICK: "vampire-lead-click", ZOMBIE_LEAD_OUT: "zombie-lead-out", ZOMBIE_LEAD_IN: "zombie-lead-in", ZOMBIE_LEAD_CLICK: "zombie-lead-click", // LEVEL REWARDS LEVEL5D: "day-level5", LEVEL5N: "night-level5", LEVEL10D: "day-level10", LEVEL10N: "night-level10", LEVEL15D: "day-level15", LEVEL15N: "night-level15", LEVEL20D: "day-level20", LEVEL20N: "night-level20", LEVEL25D: "day-level25", LEVEL25N: "night-level25", LEVEL30D: "day-level30", LEVEL30N: "night-level30", LEVEL35D: "day-level35", LEVEL35N: "night-level35", LEVEL40D: "day-level40", LEVEL40N: "night-level40", LEVEL45D: "day-level45", LEVEL45N: "night-level45", LEVEL50D: "day-level50", LEVEL50N: "night-level50", LEVEL55D: "day-level55", LEVEL55N: "night-level55", LEVEL60D: "day-level60", LEVEL60N: "night-level60", // SKINS SKIN_DEVASTD: "day-skin-devast0", SKIN_DEVASTN: "night-skin-devast0", HAND_DEVASTD: "day-hand-devaster", HAND_DEVASTN: "night-hand-devaster", SKIN_STARD: "day-skin-star0", SKIN_STARN: "night-skin-star0", HAND_STARD: "day-hand-star0", HAND_STARN: "night-hand-star0", SKIN_VAMPIRED: "day-vampire", SKIN_VAMPIREN: "night-vampire", HAND_VAMPIRED: "day-hand-vampire", HAND_VAMPIREN: "night-hand-vampire", SKIN_ZOMBIED: "day-zombie", SKIN_ZOMBIEN: "night-zombie", HAND_ZOMBIED: "day-hand-zombie", HAND_ZOMBIEN: "night-hand-zombie", SKIN_ROBOTD: "day-skin113", SKIN_ROBOTN: "night-skin113", HAND_ROBOTD: "day-hand-skin113", HAND_ROBOTN: "night-hand-skin113", SKIN0D: "day-skin0", SKIN0N: "night-skin0", SKIN1D: "day-skin1", SKIN1N: "night-skin1", SKIN2D: "day-skin2", SKIN2N: "night-skin2", SKIN3D: "day-skin3", SKIN3N: "night-skin3", SKIN4D: "day-skin4", SKIN4N: "night-skin4", SKIN5D: "day-skin5", SKIN5N: "night-skin5", SKIN6D: "day-skin6", SKIN6N: "night-skin6", SKIN7D: "day-skin7", SKIN7N: "night-skin7", SKIN8D: "day-skin8", SKIN8N: "night-skin8", SKIN9D: "day-skin9", SKIN9N: "night-skin9", SKIN10D: "day-skin10", SKIN10N: "night-skin10", SKIN11D: "day-skin11", SKIN11N: "night-skin11", SKIN12D: "day-skin12", SKIN12N: "night-skin12", SKIN13D: "day-skin13", SKIN13N: "night-skin13", SKIN14D: "day-skin14", SKIN14N: "night-skin14", SKIN15D: "day-skin15", SKIN15N: "night-skin15", SKIN16D: "day-skin16", SKIN16N: "night-skin16", SKIN17D: "day-skin17", SKIN17N: "night-skin17", SKIN18D: "day-skin18", SKIN18N: "night-skin18", SKIN19D: "day-skin19", SKIN19N: "night-skin19", SKIN20D: "day-skin20", SKIN20N: "night-skin20", SKIN21D: "day-skin21", SKIN21N: "night-skin21", SKIN22D: "day-skin22", SKIN22N: "night-skin22", SKIN23D: "day-skin23", SKIN23N: "night-skin23", SKIN24D: "day-skin24", SKIN24N: "night-skin24", SKIN25D: "day-skin25", SKIN25N: "night-skin25", SKIN26D: "day-skin26", SKIN26N: "night-skin26", SKIN27D: "day-skin27", SKIN27N: "night-skin27", SKIN28D: "day-skin28", SKIN28N: "night-skin28", SKIN29D: "day-skin29", SKIN29N: "night-skin29", SKIN30D: "day-skin30", SKIN30N: "night-skin30", SKIN31D: "day-skin31", SKIN31N: "night-skin31", SKIN32D: "day-skin32", SKIN32N: "night-skin32", SKIN33D: "day-skin33", SKIN33N: "night-skin33", SKIN34D: "day-skin34", SKIN34N: "night-skin34", SKIN35D: "day-skin35", SKIN35N: "night-skin35", SKIN36D: "day-skin36", SKIN36N: "night-skin36", SKIN37D: "day-skin37", SKIN37N: "night-skin37", SKIN38D: "day-skin38", SKIN38N: "night-skin38", SKIN39D: "day-skin39", SKIN39N: "night-skin39", SKIN40D: "day-skin40", SKIN40N: "night-skin40", SKIN41D: "day-skin41", SKIN41N: "night-skin41", SKIN42D: "day-skin42", SKIN42N: "night-skin42", SKIN43D: "day-skin43", SKIN43N: "night-skin43", SKIN44D: "day-skin44", SKIN44N: "night-skin44", SKIN45D: "day-skin45", SKIN45N: "night-skin45", SKIN46D: "day-skin46", SKIN46N: "night-skin46", SKIN47D: "day-skin47", SKIN47N: "night-skin47", SKIN48D: "day-skin48", SKIN48N: "night-skin48", SKIN49D: "day-skin49", SKIN49N: "night-skin49", SKIN50D: "day-skin50", SKIN50N: "night-skin50", SKIN51D: "day-skin51", SKIN51N: "night-skin51", SKIN52D: "day-skin52", SKIN52N: "night-skin52", SKIN53D: "day-skin53", SKIN53N: "night-skin53", SKIN54D: "day-skin54", SKIN54N: "night-skin54", SKIN55D: "day-skin55", SKIN55N: "night-skin55", SKIN56D: "day-skin56", SKIN56N: "night-skin56", SKIN57D: "day-skin57", SKIN57N: "night-skin57", SKIN58D: "day-skin58", SKIN58N: "night-skin58", SKIN59D: "day-skin59", SKIN59N: "night-skin59", SKIN60D: "day-skin60", SKIN60N: "night-skin60", SKIN61D: "day-skin61", SKIN61N: "night-skin61", SKIN62D: "day-skin62", SKIN62N: "night-skin62", SKIN63D: "day-skin63", SKIN63N: "night-skin63", SKIN64D: "day-skin64", SKIN64N: "night-skin64", SKIN65D: "day-skin65", SKIN65N: "night-skin65", SKIN66D: "day-skin66", SKIN66N: "night-skin66", SKIN67D: "day-skin67", SKIN67N: "night-skin67", SKIN68D: "day-skin68", SKIN68N: "night-skin68", SKIN69D: "day-skin69", SKIN69N: "night-skin69", SKIN70D: "day-skin70", SKIN70N: "night-skin70", SKIN71D: "day-skin71", SKIN71N: "night-skin71", SKIN72D: "day-skin72", SKIN72N: "night-skin72", SKIN73D: "day-skin73", SKIN73N: "night-skin73", SKIN74D: "day-skin74", SKIN74N: "night-skin74", SKIN75D: "day-skin75", SKIN75N: "night-skin75", SKIN76D: "day-skin76", SKIN76N: "night-skin76", SKIN77D: "day-skin77", SKIN77N: "night-skin77", SKIN78D: "day-skin78", SKIN78N: "night-skin78", SKIN79D: "day-skin79", SKIN79N: "night-skin79", SKIN80D: "day-skin80", SKIN80N: "night-skin80", SKIN81D: "day-skin81", SKIN81N: "night-skin81", SKIN82D: "day-skin82", SKIN82N: "night-skin82", SKIN83D: "day-skin83", SKIN83N: "night-skin83", SKIN84D: "day-skin84", SKIN84N: "night-skin84", SKIN85D: "day-skin85", SKIN85N: "night-skin85", SKIN86D: "day-skin86", SKIN86N: "night-skin86", SKIN87D: "day-skin87", SKIN87N: "night-skin87", SKIN88D: "day-skin88", SKIN88N: "night-skin88", SKIN89D: "day-skin89", SKIN89N: "night-skin89", SKIN90D: "day-skin90", SKIN90N: "night-skin90", SKIN91D: "day-skin91", SKIN91N: "night-skin91", SKIN92D: "day-skin92", SKIN92N: "night-skin92", SKIN93D: "day-skin93", SKIN93N: "night-skin93", SKIN94D: "day-skin94", SKIN94N: "night-skin94", SKIN95D: "day-skin95", SKIN95N: "night-skin95", SKIN96D: "day-skin96", SKIN96N: "night-skin96", SKIN97D: "day-skin97", SKIN97N: "night-skin97", SKIN98D: "day-skin98", SKIN98N: "night-skin98", SKIN99D: "day-skin99", SKIN99N: "night-skin99", SKIN100D: "day-skin100", SKIN100N: "night-skin100", SKIN101D: "day-skin101", SKIN101N: "night-skin101", SKIN102D: "day-skin102", SKIN102N: "night-skin102", SKIN103D: "day-skin103", SKIN103N: "night-skin103", SKIN104D: "day-skin104", SKIN104N: "night-skin104", SKIN105D: "day-skin105", SKIN105N: "night-skin105", SKIN106D: "day-skin106", SKIN106N: "night-skin106", SKIN107D: "day-skin107", SKIN107N: "night-skin107", SKIN108D: "day-skin108", SKIN108N: "night-skin108", SKIN109D: "day-skin109", SKIN109N: "night-skin109", SKIN110D: "day-skin110", SKIN110N: "night-skin110", SKIN111D: "day-skin111", SKIN111N: "night-skin111", SKIN112D: "day-skin112", SKIN112N: "night-skin112", SKIN113D: "day-skin113", SKIN113N: "night-skin113", SKIN114D: "day-skin114", SKIN114N: "night-skin114", SKIN115D: "day-skin115", SKIN115N: "night-skin115", SKIN116D: "day-skin116", SKIN116N: "night-skin116", SKIN117D: "day-skin117", SKIN117N: "night-skin117", SKIN118D: "day-skin118", SKIN118N: "night-skin118", SKIN119D: "day-skin119", SKIN119N: "night-skin119", SKIN120D: "day-skin120", SKIN120N: "night-skin120", SKIN121D: "day-skin121", SKIN121N: "night-skin121", SKIN122D: "day-skin122", SKIN122N: "night-skin122", SKIN123D: "day-skin123", SKIN123N: "night-skin123", SKIN124D: "day-skin124", SKIN124N: "night-skin124", SKIN125D: "day-skin125", SKIN125N: "night-skin125", SKIN126D: "day-skin126", SKIN126N: "night-skin126", SKIN127D: "day-skin127", SKIN127N: "night-skin127", SKIN128D: "day-skin128", SKIN128N: "night-skin128", SKIN129D: "day-skin129", SKIN129N: "night-skin129", SKIN130D: "day-skin130-1", SKIN130N: "night-skin130-1", SKIN131D: "day-skin131", SKIN131N: "night-skin131", SKIN132D: "day-skin132", SKIN132N: "night-skin132", SKIN133D: "day-skin133", //yrifox SKIN133N: "night-skin133", //yrifox SKIN134D: "day-skin134", SKIN134N: "night-skin134", SKIN135D: "day-skin135", SKIN135N: "night-skin135", SKIN136D: "day-skin136", SKIN136N: "night-skin136", SKIN137D: "day-skin137", SKIN137N: "night-skin137", SKIN138D: "day-skin138", SKIN138N: "night-skin138", SKIN139D: "day-skin139", SKIN139N: "night-skin139", SKIN140D: "day-skin140", SKIN140N: "night-skin140", SKIN141D: "day-skin141", //omarJr SKIN141N: "night-skin141", //omarJr SKIN142D: "day-skin142", SKIN142N: "night-skin142", SKIN143D: "day-skin143", SKIN143N: "night-skin143", SKIN144D: "day-skin144", SKIN144N: "night-skin144", SKIN145D: "day-skin145", SKIN145N: "night-skin145", SKIN146D: "day-skin146", SKIN146N: "night-skin146", SKIN147D: "day-skin147", SKIN147N: "night-skin147", SKIN148D: "day-skin148", SKIN148N: "night-skin148", SKIN149D: "day-skin149", SKIN149N: "night-skin149", SKIN150D: "day-skin150", SKIN150N: "night-skin150", HAND_SKIN0D: "day-hand-skin0", HAND_SKIN0N: "night-hand-skin0", HAND_SKIN1D: "day-hand-skin1", HAND_SKIN1N: "night-hand-skin1", HAND_SKIN2D: "day-hand-skin2", HAND_SKIN2N: "night-hand-skin2", HAND_SKIN3D: "day-hand-skin3", HAND_SKIN3N: "night-hand-skin3", HAND_SKIN4D: "day-hand-skin4", HAND_SKIN4N: "night-hand-skin4", HAND_SKIN5D: "day-hand-skin5", HAND_SKIN5N: "night-hand-skin5", HAND_SKIN6D: "day-hand-skin6", HAND_SKIN6N: "night-hand-skin6", HAND_SKIN7D: "day-hand-skin6", HAND_SKIN7N: "night-hand-skin6", HAND_SKIN8D: "day-hand-skin8", HAND_SKIN8N: "night-hand-skin8", HAND_SKIN9D: "day-hand-skin9", HAND_SKIN9N: "night-hand-skin9", HAND_SKIN10D: "day-hand-skin10", HAND_SKIN10N: "night-hand-skin10", HAND_SKIN11D: "day-hand-skin11", HAND_SKIN11N: "night-hand-skin11", HAND_SKIN12D: "day-hand-skin12", HAND_SKIN12N: "night-hand-skin12", HAND_SKIN13D: "day-hand-skin13", HAND_SKIN13N: "night-hand-skin13", HAND_SKIN14D: "day-hand-skin14", HAND_SKIN14N: "night-hand-skin14", HAND_SKIN15D: "day-hand-skin15", HAND_SKIN15N: "night-hand-skin15", HAND_SKIN16D: "day-hand-skin16", HAND_SKIN16N: "night-hand-skin16", HAND_SKIN17D: "day-hand-skin17", HAND_SKIN17N: "night-hand-skin17", HAND_SKIN18D: "day-hand-skin18", HAND_SKIN18N: "night-hand-skin18", HAND_SKIN19D: "day-hand-skin19", HAND_SKIN19N: "night-hand-skin19", HAND_SKIN20D: "day-hand-skin20", HAND_SKIN20N: "night-hand-skin20", HAND_SKIN21D: "day-hand-skin21", HAND_SKIN21N: "night-hand-skin21", HAND_SKIN22D: "day-hand-skin22", HAND_SKIN22N: "night-hand-skin22", HAND_SKIN23D: "day-hand-skin23", HAND_SKIN23N: "night-hand-skin23", HAND_SKIN24D: "day-hand-skin24", HAND_SKIN24N: "night-hand-skin24", HAND_SKIN25D: "day-hand-skin25", HAND_SKIN25N: "night-hand-skin25", HAND_SKIN26D: "day-hand-skin26", HAND_SKIN26N: "night-hand-skin26", HAND_SKIN27D: "day-hand-skin27", HAND_SKIN27N: "night-hand-skin27", HAND_SKIN28D: "day-hand-skin28", HAND_SKIN28N: "night-hand-skin28", HAND_SKIN29D: "day-hand-skin29", HAND_SKIN29N: "night-hand-skin29", HAND_SKIN30D: "day-hand-skin30", HAND_SKIN30N: "night-hand-skin30", HAND_SKIN31D: "day-hand-skin31", HAND_SKIN31N: "night-hand-skin31", HAND_SKIN32D: "day-hand-skin32", HAND_SKIN32N: "night-hand-skin32", HAND_SKIN33D: "day-hand-skin33", HAND_SKIN33N: "night-hand-skin33", HAND_SKIN34D: "day-hand-skin34", HAND_SKIN34N: "night-hand-skin34", HAND_SKIN35D: "day-hand-skin35", HAND_SKIN35N: "night-hand-skin35", HAND_SKIN36D: "day-hand-skin36", HAND_SKIN36N: "night-hand-skin36", HAND_SKIN37D: "day-hand-skin37", HAND_SKIN37N: "night-hand-skin37", HAND_SKIN38D: "day-hand-skin38", HAND_SKIN38N: "night-hand-skin38", HAND_SKIN39D: "day-hand-skin39", HAND_SKIN39N: "night-hand-skin39", HAND_SKIN40D: "day-hand-skin40", HAND_SKIN40N: "night-hand-skin40", HAND_SKIN41D: "day-hand-skin41", HAND_SKIN41N: "night-hand-skin41", HAND_SKIN42D: "day-hand-skin42", HAND_SKIN42N: "night-hand-skin42", HAND_SKIN43D: "day-hand-skin43", HAND_SKIN43N: "night-hand-skin43", HAND_SKIN44D: "day-hand-skin16", HAND_SKIN44N: "night-hand-skin16", HAND_SKIN45D: "day-hand-skin45", HAND_SKIN45N: "night-hand-skin45", HAND_SKIN46D: "day-hand-skin46", HAND_SKIN46N: "night-hand-skin46", HAND_SKIN47D: "day-hand-skin47", HAND_SKIN47N: "night-hand-skin47", HAND_SKIN48D: "day-hand-skin48", HAND_SKIN48N: "night-hand-skin48", HAND_SKIN49D: "day-hand-skin49", HAND_SKIN49N: "night-hand-skin49", HAND_SKIN50D: "day-hand-skin49", HAND_SKIN50N: "night-hand-skin49", HAND_SKIN51D: "day-hand-skin51", HAND_SKIN51N: "night-hand-skin51", HAND_SKIN52D: "day-hand-skin52", HAND_SKIN52N: "night-hand-skin52", HAND_SKIN53D: "day-hand-skin53", HAND_SKIN53N: "night-hand-skin53", HAND_SKIN54D: "day-hand-skin53", HAND_SKIN54N: "night-hand-skin53", HAND_SKIN55D: "day-hand-skin55", HAND_SKIN55N: "night-hand-skin55", HAND_SKIN56D: "day-hand-skin56", HAND_SKIN56N: "night-hand-skin56", HAND_SKIN57D: "day-hand-skin57", HAND_SKIN57N: "night-hand-skin57", HAND_SKIN58D: "day-hand-skin58", HAND_SKIN58N: "night-hand-skin58", HAND_SKIN59D: "day-hand-skin59", HAND_SKIN59N: "night-hand-skin59", HAND_SKIN60D: "day-hand-skin61", HAND_SKIN60N: "night-hand-skin61", HAND_SKIN61D: "day-hand-skin61", HAND_SKIN61N: "night-hand-skin61", HAND_SKIN62D: "day-hand-skin62", HAND_SKIN62N: "night-hand-skin62", HAND_SKIN63D: "day-hand-skin63", HAND_SKIN63N: "night-hand-skin63", HAND_SKIN64D: "day-hand-skin64", HAND_SKIN64N: "night-hand-skin64", HAND_SKIN65D: "day-hand-skin65", HAND_SKIN65N: "night-hand-skin65", HAND_SKIN66D: "day-hand-skin66", HAND_SKIN66N: "night-hand-skin66", HAND_SKIN67D: "day-hand-skin67", HAND_SKIN67N: "night-hand-skin67", HAND_SKIN68D: "day-hand-skin68", HAND_SKIN68N: "night-hand-skin68", HAND_SKIN69D: "day-hand-skin69", HAND_SKIN69N: "night-hand-skin69", HAND_SKIN70D: "day-hand-skin70", HAND_SKIN70N: "night-hand-skin70", HAND_SKIN71D: "day-hand-skin71", HAND_SKIN71N: "night-hand-skin71", HAND_SKIN72D: "day-hand-skin72", HAND_SKIN72N: "night-hand-skin72", HAND_SKIN73D: "day-hand-skin73", HAND_SKIN73N: "night-hand-skin73", HAND_SKIN74D: "day-hand-skin74", HAND_SKIN74N: "night-hand-skin74", HAND_SKIN75D: "day-hand-skin75", HAND_SKIN75N: "night-hand-skin75", HAND_SKIN76D: "day-hand-skin76", HAND_SKIN76N: "night-hand-skin76", HAND_SKIN77D: "day-hand-skin77", HAND_SKIN77N: "night-hand-skin77", HAND_SKIN78D: "day-hand-skin78", HAND_SKIN78N: "night-hand-skin78", HAND_SKIN79D: "day-hand-skin79", HAND_SKIN79N: "night-hand-skin79", HAND_SKIN80D: "day-hand-skin80", HAND_SKIN80N: "night-hand-skin80", HAND_SKIN81D: "day-hand-skin81", HAND_SKIN81N: "night-hand-skin81", HAND_SKIN82D: "day-hand-skin82", HAND_SKIN82N: "night-hand-skin82", HAND_SKIN83D: "day-hand-skin83", HAND_SKIN83N: "night-hand-skin83", HAND_SKIN84D: "day-hand-skin84", HAND_SKIN84N: "night-hand-skin84", HAND_SKIN85D: "day-hand-skin85", HAND_SKIN85N: "night-hand-skin85", HAND_SKIN86D: "day-hand-skin86", HAND_SKIN86N: "night-hand-skin86", HAND_SKIN87D: "day-hand-skin87", HAND_SKIN87N: "night-hand-skin87", HAND_SKIN88D: "day-hand-skin88", HAND_SKIN88N: "night-hand-skin88", HAND_SKIN89D: "day-hand-skin89", HAND_SKIN89N: "night-hand-skin89", HAND_SKIN90D: "day-hand-skin90", HAND_SKIN90N: "night-hand-skin90", HAND_SKIN91D: "day-hand-skin91", HAND_SKIN91N: "night-hand-skin91", HAND_SKIN92D: "day-hand-skin92", HAND_SKIN92N: "night-hand-skin92", HAND_SKIN93D: "day-hand-skin93", HAND_SKIN93N: "night-hand-skin93", HAND_SKIN94D: "day-hand-skin94", HAND_SKIN94N: "night-hand-skin94", HAND_SKIN95D: "day-hand-skin95", HAND_SKIN95N: "night-hand-skin95", HAND_SKIN96D: "day-hand-skin96", HAND_SKIN96N: "night-hand-skin96", HAND_SKIN97D: "day-hand-skin97", HAND_SKIN97N: "night-hand-skin97", HAND_SKIN98D: "day-hand-skin98", HAND_SKIN98N: "night-hand-skin98", HAND_SKIN99D: "day-hand-skin99", HAND_SKIN99N: "night-hand-skin99", HAND_SKIN100D: "day-hand-skin100", HAND_SKIN100N: "night-hand-skin100", HAND_SKIN101D: "day-hand-skin101", HAND_SKIN101N: "night-hand-skin101", HAND_SKIN102D: "day-hand-skin102", HAND_SKIN102N: "night-hand-skin102", HAND_SKIN103D: "day-hand-skin103", HAND_SKIN103N: "night-hand-skin103", HAND_SKIN104D: "day-hand-skin104", HAND_SKIN104N: "night-hand-skin104", HAND_SKIN105D: "day-hand-skin105", HAND_SKIN105N: "night-hand-skin105", HAND_SKIN106D: "day-hand-skin106", HAND_SKIN106N: "night-hand-skin106", HAND_SKIN107D: "day-hand-skin107", HAND_SKIN107N: "night-hand-skin107", HAND_SKIN108D: "day-hand-skin108", HAND_SKIN108N: "night-hand-skin108", HAND_SKIN109D: "day-hand-skin109", HAND_SKIN109N: "night-hand-skin109", HAND_SKIN110D: "day-hand-skin110", HAND_SKIN110N: "night-hand-skin110", HAND_SKIN111D: "day-hand-skin111", HAND_SKIN111N: "night-hand-skin111", HAND_SKIN112D: "day-hand-skin112", HAND_SKIN112N: "night-hand-skin112", HAND_SKIN113D: "day-hand-skin113", HAND_SKIN113N: "night-hand-skin113", HAND_SKIN114D: "day-hand-skin114", HAND_SKIN114N: "night-hand-skin114", HAND_SKIN115D: "day-hand-skin115", HAND_SKIN115N: "night-hand-skin115", HAND_SKIN116D: "day-hand-skin116", HAND_SKIN116N: "night-hand-skin116", HAND_SKIN117D: "day-hand-skin117", HAND_SKIN117N: "night-hand-skin117", HAND_SKIN118D: "day-hand-skin118", HAND_SKIN118N: "night-hand-skin118", HAND_SKIN119D: "day-hand-skin119", HAND_SKIN119N: "night-hand-skin119", HAND_SKIN120D: "day-hand-skin120", HAND_SKIN120N: "night-hand-skin120", HAND_SKIN121D: "day-hand-skin122", HAND_SKIN121N: "night-hand-skin122", HAND_SKIN122D: "day-hand-skin122", HAND_SKIN122N: "night-hand-skin122", HAND_SKIN123D: "day-hand-skin122", HAND_SKIN123N: "night-hand-skin122", HAND_SKIN124D: "day-hand-skin124", HAND_SKIN124N: "night-hand-skin124", HAND_SKIN125D: "day-hand-skin125", HAND_SKIN125N: "night-hand-skin125", HAND_SKIN126D: "day-hand-skin126", HAND_SKIN126N: "night-hand-skin126", HAND_SKIN127D: "day-hand-skin127", HAND_SKIN127N: "night-hand-skin127", HAND_SKIN128D: "day-hand-skin128", HAND_SKIN128N: "night-hand-skin128", HAND_SKIN129D: "day-hand-skin129", HAND_SKIN129N: "night-hand-skin129", HAND_SKIN130D: "day-hand-skin130", HAND_SKIN130N: "night-hand-skin130", HAND_SKIN131D: "day-hand-skin131", HAND_SKIN131N: "night-hand-skin131", HAND_SKIN132D: "day-hand-skin130", HAND_SKIN132N: "night-hand-skin130", HAND_SKIN133D: "day-hand-skin133", //yrifox HAND_SKIN133N: "night-hand-skin133", //yrifox HAND_SKIN134D: "day-hand-skin134", HAND_SKIN134N: "night-hand-skin134", HAND_SKIN135D: "day-hand-skin135", HAND_SKIN135N: "night-hand-skin135", HAND_SKIN136D: "day-hand-skin136", HAND_SKIN136N: "night-hand-skin136", HAND_SKIN137D: "day-hand-skin137", HAND_SKIN137N: "night-hand-skin137", HAND_SKIN138D: "day-hand-skin138", HAND_SKIN138N: "night-hand-skin138", HAND_SKIN139D: "day-hand-skin139", HAND_SKIN139N: "night-hand-skin139", HAND_SKIN140D: "day-hand-skin140", HAND_SKIN140N: "night-hand-skin140", HAND_SKIN141D: "day-hand-skin141", //omarJr HAND_SKIN141N: "night-hand-skin141", //omarJr HAND_SKIN142D: "day-hand-skin142", HAND_SKIN142N: "night-hand-skin142", HAND_SKIN143D: "day-hand-skin143", HAND_SKIN143N: "night-hand-skin143", HAND_SKIN144D: "day-hand-skin144", HAND_SKIN144N: "night-hand-skin144", HAND_SKIN145D: "day-hand-skin145", HAND_SKIN145N: "night-hand-skin145", HAND_SKIN146D: "day-hand-skin146", HAND_SKIN146N: "night-hand-skin146", HAND_SKIN147D: "day-hand-skin147", HAND_SKIN147N: "night-hand-skin147", HAND_SKIN148D: "day-hand-skin148", HAND_SKIN148N: "night-hand-skin148", HAND_SKIN149D: "day-hand-skin149", HAND_SKIN149N: "night-hand-skin149", HAND_SKIN150D: "day-hand-skin150", HAND_SKIN150N: "night-hand-skin150", // BAGS BAG_STARD: "day-bag-star0", BAG_STARN: "night-bag-star0", BAG0D: "day-bag0", BAG0N: "night-bag0", BAG1D: "day-bag1", BAG1N: "night-bag1", BAG2D: "day-bag2", BAG2N: "night-bag2", BAG3D: "day-bag3", BAG3N: "night-bag3", BAG4D: "day-bag4", BAG4N: "night-bag4", BAG5D: "day-bag5", BAG5N: "night-bag5", BAG6D: "day-bag6", BAG6N: "night-bag6", BAG7D: "day-bag7", BAG7N: "night-bag7", BAG8D: "day-bag8", BAG8N: "night-bag8", BAG9D: "day-bag9", BAG9N: "night-bag9", BAG10D: "day-bag10", BAG10N: "night-bag10", BAG11D: "day-bag11", BAG11N: "night-bag11", //BAG12D : 'img/day-bag12.png', //BAG12N : 'img/night-bag12.png', BAG13D: "day-bag13", BAG13N: "night-bag13", BAG14D: "day-bag14", BAG14N: "night-bag14", //BAG15D : 'img/day-bag15.png', //BAG15N : 'img/night-bag15.png', BAG16D: "day-bag16", BAG16N: "night-bag16", BAG17D: "day-bag17", BAG17N: "night-bag17", BAG18D: "day-bag18", BAG18N: "night-bag18", BAG19D: "day-bag19", BAG19N: "night-bag19", BAG20D: "day-bag20", BAG20N: "night-bag20", BAG21D: "day-bag21", BAG21N: "night-bag21", BAG22D: "day-bag22", BAG22N: "night-bag22", BAG23D: "day-bag23", BAG23N: "night-bag23", BAG24D: "day-bag24", BAG24N: "night-bag24", BAG25D: "day-bag25", BAG25N: "night-bag25", BAG26D: "day-bag26", BAG26N: "night-bag26", BAG27D: "day-bag27", BAG27N: "night-bag27", BAG28D: "day-bag28", BAG28N: "night-bag28", BAG29D: "day-bag29", BAG29N: "night-bag29", BAG30D: "day-bag30", BAG30N: "night-bag30", BAG31D: "day-bag31", BAG31N: "night-bag31", BAG32D: "day-bag32", BAG32N: "night-bag32", BAG33D: "day-bag33", BAG33N: "night-bag33", BAG34D: "day-bag34", BAG34N: "night-bag34", BAG35D: "day-bag35", BAG35N: "night-bag35", BAG36D: "day-bag36", BAG36N: "night-bag36", BAG37D: "day-bag37", BAG37N: "night-bag37", BAG38D: "day-bag38", BAG38N: "night-bag38", BAG39D: "day-bag39", BAG39N: "night-bag39", BAG40D: "day-bag40", BAG40N: "night-bag40", BAG41D: "day-bag41", BAG41N: "night-bag41", BAG42D: "day-bag42", BAG42N: "night-bag42", BAG43D: "day-bag43", BAG43N: "night-bag43", BAG44D: "day-bag44", BAG44N: "night-bag44", BAG45D: "day-bag45", BAG45N: "night-bag45", BAG46D: "day-bag46", BAG46N: "night-bag46", BAG47D: "day-bag47", BAG47N: "night-bag47", BAG48D: "day-bag48", BAG48N: "night-bag48", BAG49D: "day-bag49", BAG49N: "night-bag49", BAG50D: "day-bag50", BAG50N: "night-bag50", BAG51D: "day-bag51", BAG51N: "night-bag51", BAG52D: "day-bag52", BAG52N: "night-bag52", BAG53D: "day-bag53", BAG53N: "night-bag53", BAG54D: "day-bag54", BAG54N: "night-bag54", BAG55D: "day-bag55", BAG55N: "night-bag55", BAG56D: "day-bag56", BAG56N: "night-bag56", BAG57D: "day-bag57", BAG57N: "night-bag57", BAG58D: "day-bag58", BAG58N: "night-bag58", BAG59D: "day-bag59", BAG59N: "night-bag59", BAG60D: "day-bag60", BAG60N: "night-bag60", BAG61D: "day-bag61", BAG61N: "night-bag61", BAG62D: "day-bag62", BAG62N: "night-bag62", BAG63D: "day-bag63", BAG63N: "night-bag63", BAG64D: "day-bag64", BAG64N: "night-bag64", BAG65D: "day-bag65", BAG65N: "night-bag65", BAG66D: "day-bag66", BAG66N: "night-bag66", BAG67D: "day-bag67", BAG67N: "night-bag67", BAG68D: "day-bag68", BAG68N: "night-bag68", // ACCESSORY ACCESSORY0D: "day-accessory0", ACCESSORY17D: "day-accessory0-pacques", ACCESSORY17N: "night-accessory0-pacques", ACCESSORY13D: "day-accessory13", ACCESSORY13N: "night-accessory13", ACCESSORY14D: "day-accessory14", ACCESSORY14N: "night-accessory14", ACCESSORY15D: "day-accessory15", ACCESSORY15N: "night-accessory15", ACCESSORY16D: "day-accessory16", ACCESSORY16N: "night-accessory16", ACCESSORY18D: "day-accessory17", ACCESSORY18N: "day-accessory17", ACCESSORY19D: "day-accessory19", ACCESSORY19N: "night-accessory19", ACCESSORY20D: "day-accessory20", ACCESSORY20N: "night-accessory20", ACCESSORY21D: "day-accessory21", ACCESSORY21N: "night-accessory21", ACCESSORY22D: "day-accessory22", ACCESSORY22N: "night-accessory22", ACCESSORY23D: "day-accessory23", ACCESSORY23N: "night-accessory23", ACCESSORY24D: "day-accessory24", ACCESSORY24N: "night-accessory24", ACCESSORY25D: "day-accessory25", ACCESSORY25N: "night-accessory25", ACCESSORY26D: "day-accessory26", ACCESSORY26N: "night-accessory26", ACCESSORY27D: "day-accessory27", ACCESSORY27N: "night-accessory27", ACCESSORY28D: "day-accessory18", ACCESSORY28N: "night-accessory18", ACCESSORY29D: "day-accessory29", ACCESSORY29N: "night-accessory29", ACCESSORY30D: "day-accessory30", ACCESSORY30N: "night-accessory30", ACCESSORY31D: "day-accessory31", ACCESSORY31N: "night-accessory31", ACCESSORY32D: "day-accessory32", ACCESSORY32N: "night-accessory32", ACCESSORY33D: "day-accessory33", ACCESSORY33N: "night-accessory33", ACCESSORY34D: "day-accessory34", ACCESSORY34N: "night-accessory34", ACCESSORY35D: "day-accessory35", ACCESSORY35N: "night-accessory35", ACCESSORY36D: "day-accessory28", ACCESSORY36N: "night-accessory28", ACCESSORY37D: "day-accessory36", ACCESSORY37N: "night-accessory36", ACCESSORY38D: "day-accessory37", ACCESSORY38N: "night-accessory37", ACCESSORY39D: "day-accessory39", ACCESSORY39N: "night-accessory39", ACCESSORY40D: "day-accessory40", ACCESSORY40N: "night-accessory40", ACCESSORY41D: "day-accessory41", ACCESSORY41N: "night-accessory41", ACCESSORY42D: "day-accessory42", ACCESSORY42N: "night-accessory42", ACCESSORY43D: "day-accessory43", ACCESSORY43N: "night-accessory43", ACCESSORY44D: "day-accessory44", ACCESSORY44N: "night-accessory44", ACCESSORY45D: "day-accessory38", ACCESSORY45N: "night-accessory38", ACCESSORY46D: "day-accessory46", ACCESSORY46N: "night-accessory46", ACCESSORY47D: "day-accessory47", ACCESSORY47N: "night-accessory47", ACCESSORY48D: "day-accessory48", ACCESSORY48N: "night-accessory48", ACCESSORY49D: "day-accessory49", ACCESSORY49N: "night-accessory49", ACCESSORY50D: "day-accessory45", ACCESSORY50N: "night-accessory45", ACCESSORY51D: "day-accessory50", ACCESSORY51N: "night-accessory50", ACCESSORY52D: "day-accessory51", ACCESSORY52N: "night-accessory51", ACCESSORY53D: "day-accessory52", ACCESSORY53N: "night-accessory52", ACCESSORY54D: "day-accessory53", ACCESSORY54N: "night-accessory53", ACCESSORY55D: "day-accessory54", ACCESSORY55N: "night-accessory54", ACCESSORY56D: "day-accessory55", ACCESSORY56N: "night-accessory55", ACCESSORY57D: "day-accessory56", ACCESSORY57N: "night-accessory56", ACCESSORY58D: "day-accessory57", ACCESSORY58N: "night-accessory57", ACCESSORY59D: "day-accessory58", ACCESSORY59N: "night-accessory58", ACCESSORY60D: "day-accessory59", ACCESSORY60N: "night-accessory59", ACCESSORY61D: "day-accessory60", ACCESSORY61N: "night-accessory60", ACCESSORY62D: "day-accessory61", ACCESSORY62N: "night-accessory61", ACCESSORY63D: "day-accessory62", ACCESSORY63N: "night-accessory62", ACCESSORY64D: "day-accessory63", ACCESSORY64N: "night-accessory63", ACCESSORY65D: "day-accessory64", ACCESSORY65N: "night-accessory64", ACCESSORY66D: "day-accessory65", ACCESSORY66N: "night-accessory65", ACCESSORY67D: "day-accessory66", ACCESSORY67N: "night-accessory66", ACCESSORY68D: "day-accessory67", ACCESSORY68N: "night-accessory67", ACCESSORY69D: "day-accessory68", ACCESSORY69N: "night-accessory68", ACCESSORY70D: "day-accessory69", ACCESSORY70N: "night-accessory69", ACCESSORY71D: "day-accessory70", ACCESSORY71N: "night-accessory70", ACCESSORY72D: "day-accessory71", ACCESSORY72N: "night-accessory71", ACCESSORY73D: "day-accessory72", ACCESSORY73N: "night-accessory72", ACCESSORY74D: "day-accessory73", ACCESSORY74N: "night-accessory73", ACCESSORY75D: "day-accessory74", ACCESSORY75N: "night-accessory74", ACCESSORY76D: "day-accessory75", ACCESSORY76N: "night-accessory75", ACCESSORY77D: "day-accessory76", ACCESSORY77N: "night-accessory76", ACCESSORY78D: "day-accessory77", ACCESSORY78N: "night-accessory77", ACCESSORY79D: "day-accessory78", ACCESSORY79N: "night-accessory78", ACCESSORY80D: "day-accessory79", ACCESSORY80N: "night-accessory79", ACCESSORY81D: "day-accessory80", ACCESSORY81N: "night-accessory80", ACCESSORY82D: "day-accessory81", ACCESSORY82N: "night-accessory81", //BOOKS BOOK0D: "day-book0", BOOK0N: "night-book0", BOOK1D: "day-book1", BOOK1N: "night-book1", BOOK2D: "day-book2", BOOK2N: "night-book2", BOOK3D: "day-book3", BOOK3N: "night-book3", BOOK4D: "day-book4", BOOK4N: "night-book4", BOOK5D: "day-book5", BOOK5N: "night-book5", BOOK6D: "day-book6", BOOK6N: "night-book6", BOOK7D: "day-book7", BOOK7N: "night-book7", BOOK8D: "day-book8", BOOK8N: "night-book8", BOOK9D: "day-book9", BOOK9N: "night-book9", BOOK10D: "day-book10", BOOK10N: "night-book10", BOOK11D: "day-book11", BOOK11N: "night-book11", BOOK12D: "day-book12", BOOK12N: "night-book12", BOOK13D: "day-book13", BOOK13N: "night-book13", BOOK14D: "day-book14", BOOK14N: "night-book14", BOOK15D: "day-book15", BOOK15N: "night-book15", BOOK16D: "day-book16", BOOK16N: "night-book16", BOOK17D: "day-book17", BOOK17N: "night-book17", BOOK18D: "day-book18", BOOK18N: "night-book18", BOOK19D: "day-book19", BOOK19N: "night-book19", BOOK20D: "day-book20", BOOK20N: "night-book20", BOOK21D: "day-book21", BOOK21N: "night-book21", BOOK22D: "day-book22", BOOK22N: "night-book22", BOOK23D: "day-book23", BOOK23N: "night-book23", BOOK24D: "day-book24", BOOK24N: "night-book24", BOOK25D: "day-book25", BOOK25N: "night-book25", BOOK26D: "day-book26", BOOK26N: "night-book26", BOOK27D: "day-book27", BOOK27N: "night-book27", BOOK28D: "day-book28", BOOK28N: "night-book28", BOOK29D: "day-book29", BOOK29N: "night-book29", BOOK30D: "day-book30", BOOK30N: "night-book30", BOOK31D: "day-book31", BOOK31N: "night-book31", BOOK32D: "day-book32", BOOK32N: "night-book32", BOOK33D: "day-book33", BOOK33N: "night-book33", BOOK34D: "day-book34", BOOK34N: "night-book34", BOOK35D: "day-book35", BOOK35N: "night-book35", BOOK36D: "day-book36", BOOK36N: "night-book36", BOOK37D: "day-book37", BOOK37N: "night-book37", BOOK38D: "day-book38", BOOK38N: "night-book38", BOOK39D: "day-book39", BOOK39N: "night-book39", BOOK40D: "day-book40", BOOK40N: "night-book40", BOOK41D: "day-book41", BOOK41N: "night-book41", BOOK42D: "day-book42", BOOK42N: "night-book42", BOOK43D: "day-book43", BOOK43N: "night-book43", BOOK44D: "day-book44", BOOK44N: "night-book44", BOOK45D: "day-book45", BOOK45N: "night-book45", //CRATE CRATE1D: "day-crate1", CRATE1N: "night-crate1", CRATE2D: "day-crate2", CRATE2N: "night-crate2", CRATE3D: "day-crate3", CRATE3N: "night-crate3", CRATE4D: "day-crate4", CRATE4N: "night-crate4", CRATE5D: "day-crate5", CRATE5N: "night-crate5", CRATE6D: "day-crate6", CRATE6N: "night-crate6", CRATE7D: "day-crate7", CRATE7N: "night-crate7", CRATE8D: "day-crate8", CRATE8N: "night-crate8", CRATE9D: "day-crate9", CRATE9N: "night-crate9", CRATE10D: "day-crate10", CRATE10N: "night-crate10", CRATE11D: "day-crate11", CRATE11N: "night-crate11", CRATE12D: "day-crate12", CRATE12N: "night-crate12", CRATE13D: "day-crate13", CRATE13N: "night-crate13", CRATE14D: "day-crate14", CRATE14N: "night-crate14", CRATE15D: "day-crate15", CRATE15N: "night-crate15", CRATE16D: "day-crate16", CRATE16N: "night-crate16", CRATE17D: "day-crate17", CRATE17N: "night-crate17", CRATE18D: "day-crate18", CRATE18N: "night-crate18", CRATE19D: "day-crate19", CRATE19N: "night-crate19", CRATE20D: "day-crate20", CRATE20N: "night-crate20", CRATE21D: "day-crate21", CRATE21N: "night-crate21", CRATE22D: "day-crate22", CRATE22N: "night-crate22", CRATE23D: "day-crate23", CRATE23N: "night-crate23", CRATE24D: "day-crate24", CRATE24N: "night-crate24", CRATE25D: "day-crate25", CRATE25N: "night-crate25", CRATE26D: "day-crate26", CRATE26N: "night-crate26", CRATE27D: "day-crate27", CRATE27N: "night-crate27", CRATE28D: "day-crate28", CRATE28N: "night-crate28", CRATE29D: "day-crate29", CRATE29N: "night-crate29", CRATE30D: "day-crate30", CRATE30N: "night-crate30", CRATE31D: "day-crate31", CRATE31N: "night-crate31", CRATE32D: "day-crate32", CRATE32N: "night-crate32", CRATE33D: "day-crate33", CRATE33N: "night-crate33", CRATE34D: "day-crate34", CRATE34N: "night-crate34", CRATE35D: "day-crate35", CRATE35N: "night-crate35", CRATE36D: "day-crate36", CRATE36N: "night-crate36", CRATE37D: "day-crate37", CRATE37N: "night-crate37", CRATE38D: "day-crate38", CRATE38N: "night-crate38", CRATE39D: "day-crate39", CRATE39N: "night-crate39", CRATE40D: "day-crate40", CRATE40N: "night-crate40", CRATE41D: "day-crate41", CRATE41N: "night-crate41", CRATE42D: "day-crate42", CRATE42N: "night-crate42", CRATE43D: "day-crate43", CRATE43N: "night-crate43", CRATE44D: "day-crate44", CRATE44N: "night-crate44", CRATE45D: "day-crate45", CRATE45N: "night-crate45", CRATE46D: "day-crate46", CRATE46N: "night-crate46", CRATE47D: "day-crate47", CRATE47N: "night-crate47", CRATE48D: "day-crate48", CRATE48N: "night-crate48", CRATE49D: "day-crate49", CRATE49N: "night-crate49", CRATE50D: "day-crate50", //rabbit CRATE50N: "night-crate50", CRATE51D: "day-crate51", //wolf CRATE51N: "night-crate51", CRATE52D: "day-crate52", //spider CRATE52N: "night-crate52", CRATE53D: "day-crate53", //hawk CRATE53N: "night-crate53", CRATE54D: "day-crate54", //bear CRATE54N: "night-crate54", CRATE55D: "day-crate55", //fox CRATE55N: "night-crate55", CRATE56D: "day-crate56", //baby mammoth CRATE56N: "night-crate56", CRATE57D: "day-crate57", //mammoth CRATE57N: "night-crate57", CRATE58D: "day-crate58", //sandworm CRATE58N: "night-crate58", CRATE59D: "day-crate59", //vulture CRATE59N: "night-crate59", CRATE60D: "day-crate60", //kraken CRATE60N: "night-crate60", CRATE61D: "day-crate61", //piranha CRATE61N: "night-crate61", CRATE62D: "day-crate62", //baby dragon CRATE62N: "night-crate62", CRATE63D: "day-crate63", //baby lava CRATE63N: "night-crate63", CRATE64D: "day-crate64", //dragon CRATE64N: "night-crate64", CRATE65D: "day-crate65", //penguin CRATE65N: "night-crate65", CRATE66D: "day-crate66", //lava dragon CRATE66N: "night-crate66", CRATE67D: "day-crate67", //Boar CRATE67N: "night-crate67", CRATE68D: "day-crate68", //Fire mob CRATE68N: "night-crate68", CRATE69D: "day-crate69", //Crab CRATE69N: "night-crate69", CRATE70D: "day-crate70", //King Crab CRATE70N: "night-crate70", CRATE71D: "day-crate71", CRATE71N: "night-crate71", CRATE72D: "day-crate72", CRATE72N: "night-crate72", DECORATION_0D: "day-herb0", DECORATION_1D: "day-herb1", DECORATION_2D: "day-herb2", DECORATION_3D: "day-herb3", DECORATION_4D: "day-herb4", DECORATION_5D: "day-herb5", DECORATION_6D: "day-herb6", DECORATION_7D: "day-herb7", DECORATION_8D: "day-herb8", DECORATION_9D: "day-herb9", DECORATION_10D: "day-herb10", DECORATION_11D: "day-herb11", DECORATION_12D: "day-herb12", DECORATION_13D: "day-herb13", DECORATION_14D: "day-herb14", DECORATION_15D: "day-herb15", DECORATION_16D: "day-shell0", DECORATION_17D: "day-shell1", DECORATION_18D: "day-shell2", DECORATION_19D: "day-leaf1", DECORATION_20D: "day-leaf2", DECORATION_21D: "day-leaf3", DECORATION_22D: "day-leaf4", DECORATION_23D: "day-leaf5", DECORATION_24D: "day-leaf6", DECORATION_25D: "day-leaf7", DECORATION_26D: "day-leaf8", DECORATION_27D: "day-rock0", DECORATION_28D: "day-rock1", DECORATION_29D: "day-rock2", DECORATION_30D: "day-rock3", DECORATION_31D: "day-rock4", DECORATION_32D: "day-rock5", DECORATION_33D: "day-rock6", DECORATION_34D: "day-rock7", DECORATION_35D: "day-rock8", DECORATION_36D: "day-rock9", DECORATION_37D: "day-rock10", DECORATION_38D: "day-rock11", DECORATION_39D: "day-rock12", DECORATION_40D: "day-rock13", DECORATION_41D: "day-flower1", DECORATION_42D: "day-flower2", DECORATION_43D: "day-flower3", DECORATION_44D: "day-flower4", DECORATION_45D: "day-flower5", DECORATION_46D: "day-flower6", DECORATION_47D: "day-flower7", DECORATION_48D: "day-flower8", DECORATION_49D: "day-flower9", DECORATION_50D: "day-herb16", DECORATION_51D: "day-herb17", DECORATION_52D: "day-herb18", DECORATION_53D: "day-herb19", DECORATION_54D: "day-herb20", DECORATION_55D: "day-herb21", DECORATION_0N: "night-herb0", DECORATION_1N: "night-herb1", DECORATION_2N: "night-herb2", DECORATION_3N: "night-herb3", DECORATION_4N: "night-herb4", DECORATION_5N: "night-herb5", DECORATION_6N: "night-herb6", DECORATION_7N: "night-herb7", DECORATION_8N: "night-herb8", DECORATION_9N: "night-herb9", DECORATION_10N: "night-herb10", DECORATION_11N: "night-herb11", DECORATION_12N: "night-herb12", DECORATION_13N: "night-herb13", DECORATION_14N: "night-herb14", DECORATION_15N: "night-herb15", DECORATION_16N: "night-shell0", DECORATION_17N: "night-shell1", DECORATION_18N: "night-shell2", DECORATION_19N: "night-leaf1", DECORATION_20N: "night-leaf2", DECORATION_21N: "night-leaf3", DECORATION_22N: "night-leaf4", DECORATION_23N: "night-leaf5", DECORATION_24N: "night-leaf6", DECORATION_25N: "night-leaf7", DECORATION_26N: "night-leaf8", DECORATION_27N: "night-rock0", DECORATION_28N: "night-rock1", DECORATION_29N: "night-rock2", DECORATION_30N: "night-rock3", DECORATION_31N: "night-rock4", DECORATION_32N: "night-rock5", DECORATION_33N: "night-rock6", DECORATION_34N: "night-rock7", DECORATION_35N: "night-rock8", DECORATION_36N: "night-rock9", DECORATION_37N: "night-rock10", DECORATION_38N: "night-rock11", DECORATION_39N: "night-rock12", DECORATION_40N: "night-rock13", DECORATION_41N: "night-flower1", DECORATION_42N: "night-flower2", DECORATION_43N: "night-flower3", DECORATION_44N: "night-flower4", DECORATION_45N: "night-flower5", DECORATION_46N: "night-flower6", DECORATION_47N: "night-flower7", DECORATION_48N: "night-flower8", DECORATION_49N: "night-flower9", DECORATION_50N: "night-herb16", DECORATION_51N: "night-herb17", DECORATION_52N: "night-herb18", DECORATION_53N: "night-herb19", DECORATION_54N: "night-herb20", DECORATION_55N: "night-herb21", DAY_RIVER_000_010_000: "day-river000-010-000", DAY_RIVER_000_010_010: "day-river000-010-010", DAY_RIVER_000_011_000: "day-river000-011-000", DAY_RIVER_000_011_010: "day-river000-011-010", DAY_RIVER_000_011_011: "day-river000-011-011", DAY_RIVER_000_110_000: "day-river000-110-000", DAY_RIVER_000_110_010: "day-river000-110-010", DAY_RIVER_000_110_110: "day-river000-110-110", DAY_RIVER_000_111_000: "day-river000-111-000", DAY_RIVER_000_111_010: "day-river000-111-010", DAY_RIVER_000_111_011: "day-river000-111-011", DAY_RIVER_000_111_110: "day-river000-111-110", DAY_RIVER_000_111_111: "day-river000-111-111", DAY_RIVER_010_010_000: "day-river010-010-000", DAY_RIVER_010_010_010: "day-river010-010-010", DAY_RIVER_010_011_000: "day-river010-011-000", DAY_RIVER_010_011_010: "day-river010-011-010", DAY_RIVER_010_011_011: "day-river010-011-011", DAY_RIVER_010_110_000: "day-river010-110-000", DAY_RIVER_010_110_010: "day-river010-110-010", DAY_RIVER_010_110_110: "day-river010-110-110", DAY_RIVER_010_111_000: "day-river010-111-000", DAY_RIVER_010_111_010: "day-river010-111-010", DAY_RIVER_010_111_011: "day-river010-111-011", DAY_RIVER_010_111_110: "day-river010-111-110", DAY_RIVER_010_111_111: "day-river010-111-111", DAY_RIVER_011_011_000: "day-river011-011-000", DAY_RIVER_011_011_010: "day-river011-011-010", DAY_RIVER_011_011_011: "day-river011-011-011", DAY_RIVER_011_111_000: "day-river011-111-000", DAY_RIVER_011_111_010: "day-river011-111-010", DAY_RIVER_011_111_011: "day-river011-111-011", DAY_RIVER_011_111_110: "day-river011-111-110", DAY_RIVER_011_111_111: "day-river011-111-111", DAY_RIVER_110_110_000: "day-river110-110-000", DAY_RIVER_110_110_010: "day-river110-110-010", DAY_RIVER_110_110_110: "day-river110-110-110", DAY_RIVER_110_111_000: "day-river110-111-000", DAY_RIVER_110_111_010: "day-river110-111-010", DAY_RIVER_110_111_011: "day-river110-111-011", DAY_RIVER_110_111_110: "day-river110-111-110", DAY_RIVER_110_111_111: "day-river110-111-111", DAY_RIVER_111_111_011: "day-river111-111-011", DAY_RIVER_111_111_110: "day-river111-111-110", DAY_RIVER_111_111_011: "day-river111-111-011", DAY_RIVER_111_111_000: "day-river111-111-000", DAY_RIVER_111_111_111: "day-river111-111-111", DAY_RIVER_111_111_010: "day-river111-111-010", NIGHT_RIVER_000_010_000: "night-river000-010-000", NIGHT_RIVER_000_010_010: "night-river000-010-010", NIGHT_RIVER_000_011_000: "night-river000-011-000", NIGHT_RIVER_000_011_010: "night-river000-011-010", NIGHT_RIVER_000_011_011: "night-river000-011-011", NIGHT_RIVER_000_110_000: "night-river000-110-000", NIGHT_RIVER_000_110_010: "night-river000-110-010", NIGHT_RIVER_000_110_110: "night-river000-110-110", NIGHT_RIVER_000_111_000: "night-river000-111-000", NIGHT_RIVER_000_111_010: "night-river000-111-010", NIGHT_RIVER_000_111_011: "night-river000-111-011", NIGHT_RIVER_000_111_110: "night-river000-111-110", NIGHT_RIVER_000_111_111: "night-river000-111-111", NIGHT_RIVER_010_010_000: "night-river010-010-000", NIGHT_RIVER_010_010_010: "night-river010-010-010", NIGHT_RIVER_010_011_000: "night-river010-011-000", NIGHT_RIVER_010_011_010: "night-river010-011-010", NIGHT_RIVER_010_011_011: "night-river010-011-011", NIGHT_RIVER_010_110_000: "night-river010-110-000", NIGHT_RIVER_010_110_010: "night-river010-110-010", NIGHT_RIVER_010_110_110: "night-river010-110-110", NIGHT_RIVER_010_111_000: "night-river010-111-000", NIGHT_RIVER_010_111_010: "night-river010-111-010", NIGHT_RIVER_010_111_011: "night-river010-111-011", NIGHT_RIVER_010_111_110: "night-river010-111-110", NIGHT_RIVER_010_111_111: "night-river010-111-111", NIGHT_RIVER_011_011_000: "night-river011-011-000", NIGHT_RIVER_011_011_010: "night-river011-011-010", NIGHT_RIVER_011_011_011: "night-river011-011-011", NIGHT_RIVER_011_111_000: "night-river011-111-000", NIGHT_RIVER_011_111_010: "night-river011-111-010", NIGHT_RIVER_011_111_011: "night-river011-111-011", NIGHT_RIVER_011_111_110: "night-river011-111-110", NIGHT_RIVER_011_111_111: "night-river011-111-111", NIGHT_RIVER_110_110_000: "night-river110-110-000", NIGHT_RIVER_110_110_010: "night-river110-110-010", NIGHT_RIVER_110_110_110: "night-river110-110-110", NIGHT_RIVER_110_111_000: "night-river110-111-000", NIGHT_RIVER_110_111_010: "night-river110-111-010", NIGHT_RIVER_110_111_011: "night-river110-111-011", NIGHT_RIVER_110_111_110: "night-river110-111-110", NIGHT_RIVER_110_111_111: "night-river110-111-111", NIGHT_RIVER_111_111_011: "night-river111-111-011", NIGHT_RIVER_111_111_110: "night-river111-111-110", NIGHT_RIVER_111_111_011: "night-river111-111-011", NIGHT_RIVER_111_111_000: "night-river111-111-000", NIGHT_RIVER_111_111_111: "night-river111-111-111", NIGHT_RIVER_111_111_010: "night-river111-111-010", DAY_RIVER_COMPO1: "day-pebblecompo1", DAY_RIVER_COMPO2: "day-pebblecompo2", DAY_RIVER_COMPO3: "day-pebblecompo3", DAY_RIVER_COMPO4: "day-pebblecompo4", DAY_RIVER_COMPO5: "day-pebblecompo5", DAY_RIVER_COMPO6: "day-pebblecompo6", DAY_RIVER_COMPO7: "day-pebblecompo7", DAY_RIVER_COMPO8: "day-pebblecompo8", DAY_RIVER_COMPO9: "day-pebblecompo9", DAY_RIVER_COMPO10: "day-pebblecompo10", DAY_RIVER_COMPO11: "day-pebblecompo11", DAY_RIVER_COMPO12: "day-pebblecompo12", DAY_RIVER_COMPO13: "day-pebblecompo13", DAY_RIVER_COMPO14: "day-pebblecompo14", DAY_RIVER_COMPO15: "day-pebblecompo15", DAY_RIVER_COMPO16: "day-pebblecompo16", DAY_RIVER_COMPO17: "day-pebblecompo17", DAY_RIVER_COMPO18: "day-pebblecompo18", DAY_RIVER_COMPO19: "day-pebblecompo19", DAY_RIVER_COMPO20: "day-pebblecompo20", DAY_RIVER_COMPO21: "day-pebblecompo21", DAY_RIVER_COMPO22: "day-pebblecompo22", DAY_RIVER_COMPO23: "day-pebblecompo23", DAY_RIVER_COMPO24: "day-pebblecompo24", DAY_RIVER_COMPO25: "day-pebblecompo25", DAY_RIVER_COMPO26: "day-pebblecompo26", DAY_RIVER_COMPO27: "day-pebblecompo27", DAY_RIVER_COMPO28: "day-pebblecompo28", NIGHT_RIVER_COMPO1: "night-pebblecompo1", NIGHT_RIVER_COMPO2: "night-pebblecompo2", NIGHT_RIVER_COMPO3: "night-pebblecompo3", NIGHT_RIVER_COMPO4: "night-pebblecompo4", NIGHT_RIVER_COMPO5: "night-pebblecompo5", NIGHT_RIVER_COMPO6: "night-pebblecompo6", NIGHT_RIVER_COMPO7: "night-pebblecompo7", NIGHT_RIVER_COMPO8: "night-pebblecompo8", NIGHT_RIVER_COMPO9: "night-pebblecompo9", NIGHT_RIVER_COMPO10: "night-pebblecompo10", NIGHT_RIVER_COMPO11: "night-pebblecompo11", NIGHT_RIVER_COMPO12: "night-pebblecompo12", NIGHT_RIVER_COMPO13: "night-pebblecompo13", NIGHT_RIVER_COMPO14: "night-pebblecompo14", NIGHT_RIVER_COMPO15: "night-pebblecompo15", NIGHT_RIVER_COMPO16: "night-pebblecompo16", NIGHT_RIVER_COMPO17: "night-pebblecompo17", NIGHT_RIVER_COMPO18: "night-pebblecompo18", NIGHT_RIVER_COMPO19: "night-pebblecompo19", NIGHT_RIVER_COMPO20: "night-pebblecompo20", NIGHT_RIVER_COMPO21: "night-pebblecompo21", NIGHT_RIVER_COMPO22: "night-pebblecompo22", NIGHT_RIVER_COMPO23: "night-pebblecompo23", NIGHT_RIVER_COMPO24: "night-pebblecompo24", NIGHT_RIVER_COMPO25: "night-pebblecompo25", NIGHT_RIVER_COMPO26: "night-pebblecompo26", NIGHT_RIVER_COMPO27: "night-pebblecompo27", NIGHT_RIVER_COMPO28: "night-pebblecompo28", BABY_MAMMOTHD: "day-baby-mammoth", BABY_MAMMOTH_TAMEDD: "day-baby-mammoth-tamed", BABY_MAMMOTH_ATTACKD: "day-baby-mammoth-angry", BABY_MAMMOTHN: "night-baby-mammoth", BABY_MAMMOTH_TAMEDN: "night-baby-mammoth-tamed", BABY_MAMMOTH_ATTACKN: "night-baby-mammoth-angry", INV_BABY_MAMMOTH_OUT: "inv-mammoth-out", INV_BABY_MAMMOTH_IN: "inv-mammoth-in", INV_BABY_MAMMOTH_CLICK: "inv-mammoth-click", HURT_BABY_MAMMOTH: "hurt-baby-mammoth", BABY_MAMMOTH_STEP: "baby-mammoth-step", FLOWER_HATD: "day-flower-hat", FLOWER_HATN: "night-flower-hat", INV_FLOWER_HAT_OUT: "inv-flower-hat-out", INV_FLOWER_HAT_IN: "inv-flower-hat-in", INV_FLOWER_HAT_CLICK: "inv-flower-hat-click", FUR_HATD: "day-fur-hat", FUR_HATN: "night-fur-hat", INV_FUR_HAT_OUT: "inv-fur-hat-out", INV_FUR_HAT_IN: "inv-fur-hat-in", INV_FUR_HAT_CLICK: "inv-fur-hat-click", MAMMOTHD: "day-mammoth", MAMMOTHN: "night-mammoth", HURT_MAMMOTH: "hurt-mammoth", INV_FUR_MAMMOTH_OUT: "inv-mammoth-fur-out", INV_FUR_MAMMOTH_IN: "inv-mammoth-fur-in", INV_FUR_MAMMOTH_CLICK: "inv-mammoth-fur-click", INV_WOOD_BOW_OUT: "inv-wood-bow-out", INV_WOOD_BOW_IN: "inv-wood-bow-in", INV_WOOD_BOW_CLICK: "inv-wood-bow-click", INV_WOOD_ARROW_OUT: "inv-wood-arrow-out", INV_WOOD_ARROW_IN: "inv-wood-arrow-in", INV_WOOD_ARROW_CLICK: "inv-wood-arrow-click", WOOD_BOWD: "day-wood-bow2", WOOD_BOWN: "night-wood-bow2", WOOD_ARROWD: "day-wood-arrow", WOOD_ARROWN: "night-wood-arrow", INV_STONE_BOW_OUT: "inv-stone-bow-out", INV_STONE_BOW_IN: "inv-stone-bow-in", INV_STONE_BOW_CLICK: "inv-stone-bow-click", INV_STONE_ARROW_OUT: "inv-stone-arrow-out", INV_STONE_ARROW_IN: "inv-stone-arrow-in", INV_STONE_ARROW_CLICK: "inv-stone-arrow-click", STONE_BOWD: "day-stone-bow", STONE_BOWN: "night-stone-bow", STONE_ARROWD: "day-stone-arrow", STONE_ARROWN: "night-stone-arrow", INV_GOLD_BOW_OUT: "inv-gold-bow-out", INV_GOLD_BOW_IN: "inv-gold-bow-in", INV_GOLD_BOW_CLICK: "inv-gold-bow-click", INV_GOLD_ARROW_OUT: "inv-gold-arrow-out", INV_GOLD_ARROW_IN: "inv-gold-arrow-in", INV_GOLD_ARROW_CLICK: "inv-gold-arrow-click", GOLD_BOWD: "day-gold-bow", GOLD_BOWN: "night-gold-bow", GOLD_ARROWD: "day-gold-arrow", GOLD_ARROWN: "night-gold-arrow", INV_DIAMOND_BOW_OUT: "inv-diamond-bow-out", INV_DIAMOND_BOW_IN: "inv-diamond-bow-in", INV_DIAMOND_BOW_CLICK: "inv-diamond-bow-click", INV_DIAMOND_ARROW_OUT: "inv-diamond-arrow-out", INV_DIAMOND_ARROW_IN: "inv-diamond-arrow-in", INV_DIAMOND_ARROW_CLICK: "inv-diamond-arrow-click", DIAMOND_BOWD: "day-diamond-bow", DIAMOND_BOWN: "night-diamond-bow", DIAMOND_ARROWD: "day-diamond-arrow", DIAMOND_ARROWN: "night-diamond-arrow", INV_AMETHYST_BOW_OUT: "inv-amethyst-bow-out", INV_AMETHYST_BOW_IN: "inv-amethyst-bow-in", INV_AMETHYST_BOW_CLICK: "inv-amethyst-bow-click", INV_AMETHYST_ARROW_OUT: "inv-amethyst-arrow-out", INV_AMETHYST_ARROW_IN: "inv-amethyst-arrow-in", INV_AMETHYST_ARROW_CLICK: "inv-amethyst-arrow-click", AMETHYST_BOWD: "day-amethyst-bow", AMETHYST_BOWN: "night-amethyst-bow", AMETHYST_ARROWD: "day-amethyst-arrow", AMETHYST_ARROWN: "night-amethyst-arrow", INV_DRAGON_BOW_OUT: "inv-dragon-bow-out", INV_DRAGON_BOW_IN: "inv-dragon-bow-in", INV_DRAGON_BOW_CLICK: "inv-dragon-bow-click", INV_DRAGON_ARROW_OUT: "inv-dragon-arrow-out", INV_DRAGON_ARROW_IN: "inv-dragon-arrow-in", INV_DRAGON_ARROW_CLICK: "inv-dragon-arrow-click", DRAGON_BOWD: "day-dragon-bow", DRAGON_BOWN: "night-dragon-bow", DRAGON_ARROWD: "day-dragon-arrow", DRAGON_ARROWN: "night-dragon-arrow", INV_REIDITE_BOW_OUT: "inv-reidite-bow-out", INV_REIDITE_BOW_IN: "inv-reidite-bow-in", INV_REIDITE_BOW_CLICK: "inv-reidite-bow-click", INV_REIDITE_ARROW_OUT: "inv-reidite-arrow-out", INV_REIDITE_ARROW_IN: "inv-reidite-arrow-in", INV_REIDITE_ARROW_CLICK: "inv-reidite-arrow-click", REIDITE_BOWD: "day-reidite-bow", REIDITE_BOWN: "night-reidite-bow", REIDITE_ARROWD: "day-reidite-arrow", REIDITE_ARROWN: "night-reidite-arrow", MICROPHONE: "microphone", BANDAGE_ACTIVATED: "bandage-activated", AUTO_FEED: "auto-feed", STOP_REGENERATION_BLIZZARD: "stop-regeneration", STOP_REGENERATION: "stop-regeneration2", WOOD_TOWERD: "day-wood-platform", WOOD_TOWERN: "night-wood-platform", INV_WOOD_TOWER_IN: "inv-wood-platform-in", INV_WOOD_TOWER_OUT: "inv-wood-platform-out", INV_WOOD_TOWER_CLICK: "inv-wood-platform-click", WOOD_SHIELDD: "day-wood-shield", WOOD_SHIELDN: "night-wood-shield", STONE_SHIELDD: "day-stone-shield", STONE_SHIELDN: "night-stone-shield", GOLD_SHIELDD: "day-gold-shield", GOLD_SHIELDN: "night-gold-shield", DIAMOND_SHIELDD: "day-diamond-shield", DIAMOND_SHIELDN: "night-diamond-shield", AMETHYST_SHIELDD: "day-amethyst-shield", AMETHYST_SHIELDN: "night-amethyst-shield", REIDITE_SHIELDD: "day-reidite-shield", REIDITE_SHIELDN: "night-reidite-shield", INV_WOOD_SHIELD_IN: "inv-wood-shield-in", INV_WOOD_SHIELD_OUT: "inv-wood-shield-out", INV_WOOD_SHIELD_CLICK: "inv-wood-shield-click", INV_STONE_SHIELD_IN: "inv-stone-shield-in", INV_STONE_SHIELD_OUT: "inv-stone-shield-out", INV_STONE_SHIELD_CLICK: "inv-stone-shield-click", INV_GOLD_SHIELD_IN: "inv-gold-shield-in", INV_GOLD_SHIELD_OUT: "inv-gold-shield-out", INV_GOLD_SHIELD_CLICK: "inv-gold-shield-click", INV_DIAMOND_SHIELD_IN: "inv-diamond-shield-in", INV_DIAMOND_SHIELD_OUT: "inv-diamond-shield-out", INV_DIAMOND_SHIELD_CLICK: "inv-diamond-shield-click", INV_AMETHYST_SHIELD_IN: "inv-amethyst-shield-in", INV_AMETHYST_SHIELD_OUT: "inv-amethyst-shield-out", INV_AMETHYST_SHIELD_CLICK: "inv-amethyst-shield-click", INV_REIDITE_SHIELD_IN: "inv-reidite-shield-in", INV_REIDITE_SHIELD_OUT: "inv-reidite-shield-out", INV_REIDITE_SHIELD_CLICK: "inv-reidite-shield-click", MACHETED: "day-machete", MACHETEN: "night-machete", INV_MACHETE_IN: "inv-machete-in", INV_MACHETE_OUT: "inv-machete-out", INV_MACHETE_CLICK: "inv-machete-click" }; class RNG { constructor() { this.m = 2 ** 31; this.a = 1103515245; this.c = 12345; } init(seed) { this.state = seed ? seed : window.Math.floor(window.Math.random() * (this.m - 1)); } random() { this.state = (this.a * this.state + this.c) % this.m; return this.state / this.m; } set_seed(seed) { this.state = seed; } get() { this.state = (this.a * this.state + this.c) % this.m; return this.state / this.m; } } const RAND_SIZE = 10000; const RANDOM = []; const rrr = new RNG(); rrr.set_seed(new window.Date().getTime()); for (let k = 0; k < RAND_SIZE; k++) RANDOM.push(rrr.random()); class Biome { constructor(t, x, y, w, h, v) { this.x1 = x * 100; this.y1 = y * 100; this.w = w * 100; this.h = h * 100; this.x2 = (x + w) * 100; this.y2 = (y + h) * 100; this.t = t; this.v = v; } } const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"; class Utils { static copy_vector(source, target) { target.x = source.x; target.y = source.y; } static get_vector(v1, v2) { return { x: v1.x - v2.x, y: v1.y - v2.y }; } static scalar_product(v1, v2) { return v1.x * v2.x + v1.y * v2.y; } static norm(v) { return window.Math.sqrt(v.x * v.x + v.y * v.y); } static sign(a) { if (a < 0) return -1; else return 1; } static sign_(a) { if (a === 0) return 0; else if (a > 0) return 1; else return -1; } static cross_product(v1, v2) { return v1.x * v2.y - v1.y * v2.x; } static get_angle_2(ax, ay, bx, by) { var dy = by - ay; var dx = bx - ax; return window.Math.atan2(dy, dx); } static get_angle(v1, v2) { return window.Math.acos(this.scalar_product(v1, v2) / (this.norm(v1) * this.norm(v2))) * this.sign(this.cross_product(v1, v2)); } static getURLData(_name) { let _url = location.href; _name = _name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regexS = "[\\?&]" + _name + "=([^&#]*)"; var _regex = new RegExp(regexS); var results = _regex.exec(_url); return results === null ? null : results[1]; } /** * Reduce angle * @param {number} a1 reference angle (should be between 0 and 2 * PI) * @param {number} a2 angle to reduce * @return {number} reduced angle */ static reduceAngle(a1, a2) { a2 = ((a2 % PI2M) + PI2M) % PI2M; if (window.Math.abs(a1 - a2) > window.Math.PI) { if (a1 > a2) return a2 + PI2M; else return a2 - PI2M; } return a2; } static get_std_angle(o1, o2) { return this.get_angle({ x: 1, y: 0 }, this.get_vector(o1, o2)); } static dist(a, b) { return window.Math.sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y)); } static build_vector(d, a) { return { x: window.Math.cos(a) * d, y: window.Math.sin(a) * d }; } static add_vector(source, target) { source.x += target.x; source.y += target.y; } static sub_vector(source, target) { source.x -= target.x; source.y -= target.y; } static middle_point(a, b) { return { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 }; } static restore_number(n) { if (n >= 60000) n = (n - 60000) * 1e7; else if (n >= 50000) n = (n - 50000) * 1e6; else if (n >= 40000) n = (n - 40000) * 1e5; else if (n >= 30000) n = (n - 30000) * 1e4; else if (n >= 20000) n = (n - 20000) * 1e3; else if (n >= 10000) n = (n - 10000) * 1e2; return n; } static simplify_number(n) { if (typeof n !== "number") return "0"; else if (n >= 1e12) { return (n / 1e12).toFixed(2).replace(/\.00$/, '') + "t"; } else if (n >= 1e9) { return (n / 1e9).toFixed(2).replace(/\.00$/, '') + "b"; } else if (n >= 1e6) { return (n / 1e3).toFixed(0).replace(/\.00$/, '') + "k"; } else if (n >= 1e4) { return (n / 1e3).toFixed(1).replace(/\.00$/, '') + "k"; } else { return n.toString(); } } static ease_out_quad(t) { return t * (2 - t); } static ease_out_cubic(t) { return --t * t * t + 1; } static ease_in_out_quad(t) { return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; } static ease_in_out_cubic(t) { return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; } static ease_out_quart(t) { return 1 - --t * t * t * t; } static ease_out_quint(t) { return 1 + --t * t * t * t * t; } static generate_token(len) { var token = ""; for (var i = 0; i < len; i++) { token += chars[~~(Math.random() * chars.length)]; } return token; } static gup(name, url) { if (!url) url = location.href; name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(url); return results == null ? null : results[1]; } static intersect_aabb(b1x1, b1x2, b1y1, b1y2, b2x1, b2x2, b2y1, b2y2) { if (window.Math.max(b1x1, b2x1) < window.Math.min(b1x2, b2x2) && window.Math.max(b1y1, b2y1) < window.Math.min(b1y2, b2y2)) return 1; return 0; } static lerp(p1, p2, w) { return (1 - w) * p1 + w * p2; } static escape_html(unsafe) { return unsafe.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'"); } }; class LinearAnimation { constructor(o, v, max, min, max_speed, min_speed) { this.o = o; this.v = v; this.max = max; this.min = min; this.max_speed = max_speed; this.min_speed = min_speed; this.last = 0; this.update = function () { if (this.o) { var v = this.v + delta * this.max_speed; if (v > this.max) { this.v = this.max; this.o = false; return true; } else this.v = v; } else { var v = this.v - delta * this.min_speed; if (v < this.min) { this.v = this.min; this.o = true; } else this.v = v; } }; return false; } } class Ease { constructor(fun, ed, em, sx, x, ex, ey) { this.fun = fun; this.ed = ed; this.em = em; this.sx = sx; this.x = x; this.ex = ex; } ease(x) { /* Restart ease effect */ if (x !== this.ex) { this.ex = x; this.sx = this.x; this.ed = 0; } if (this.ex !== this.x) { this.ed += delta; if (this.ed > this.em) this.x = this.ex; else { var e = this.fun(this.ed / this.em); this.x = this.sx + (this.ex - this.sx) * e; } } } restart() { this.x = this.sx; this.ed = 0; } } class Ease2d { constructor(fun, ed, em, sx, sy, x, y, ex, ey) { this.fun = fun; (this.ed = ed), (this.em = em), (this.sx = sx), (this.sy = sy), (this.x = x), (this.y = y), (this.ex = ex), (this.ey = ey), (this.ease = function (u) { /* Restart ease effect */ if (u.x != this.ex || u.y != this.ey) { this.ex = u.x; this.ey = u.y; this.sx = this.x; this.sy = this.y; this.ed = 0; } if (this.ex != this.x || this.ey != this.y) { this.ed += delta; if (this.ed > this.em) { this.x = this.ex; this.y = this.ey; } else { var e = this.fun(this.ed / this.em); this.x = this.sx + (this.ex - this.sx) * e; this.y = this.sy + (this.ey - this.sy) * e; } } }); } } class CookiesManager { get(name) { const match = window.document.cookie.match(new RegExp(name + "=[^;]*", "g")); return match ? match[0].slice(name.length + 1) : undefined; } set(name, value, expires) { var date = new window.Date(); date.setTime(+ date + (expires * 86400000)); window.document.cookie = name + "=" + value + "; expires=" + date.toGMTString() + ""; } } /* Gaming Mouse */ class Mouse { constructor() { /* Define special mouse states */ this.DOWN = 0; this.UP = 1; this.IDLE = 2; // After mouse up this.IN = 0; this.OUT = 1; this.pos = { x: 0, y: 0 }; this.x_old = 0; this.y_old = 0; this.angle = 0; this.state = this.IDLE; this.dist = this.IN; } /* Change state of mouse */ down() { this.state = this.DOWN; } up() { this.state = this.UP; } /* Update pos of mouse, useful if want to know if something changes */ update() { if (this.pos.x !== this.x_old || this.pos.y !== this.y_old) { this.x_old = this.pos.x; this.y_old = this.pos.y; return true; } return false; } } /* Gaming Keyboard */ class Keyboard { constructor() { this.UP = 0; this.DOWN = 1; this._1 = 49; this._2 = 50; this._3 = 51; this._4 = 52; this._5 = 53; this.CTRL = 17; this.ARROW_LEFT = 37; this.ARROW_RIGHT = 39; this.ARROW_TOP = 38; this.ARROW_BOTTOM = 40; this.SPACE = 32; this.R = 82; this.G = 71; this.V = 86; this.B = 66; this.set_qwerty(); this.keys = new Array(255); for (let i = 0; i < 255; i++) { this.keys[i] = this.UP; } } /* Change mapping of keyboard for azerty mode */ set_azerty() { this.LEFT = 81; this.RIGHT = 68; this.TOP = 90; this.DOWN = 83; } /* Change mapping of keyboard for qwerty mode */ set_qwerty() { this.LEFT = 65; this.RIGHT = 68; this.TOP = 87; this.BOTTOM = 83; } up(evt) { const k = window.Math.min(evt.charCode || evt.keyCode, 255); this.keys[k] = this.UP; } down(evt) { const k = window.Math.min(evt.charCode || evt.keyCode, 255); if (k === this.LEFT || k === this.ARROW_LEFT) { this.press_left(); } else if (k === this.TOP || k === this.ARROW_TOP) { this.press_top(); } else if (k === this.DOWN || k === this.ARROW_DOWN) { this.press_bottom(); } else if (k === this.RIGHT || k === this.ARROW_RIGHT) { this.press_right(); } this.keys[k] = this.DOWN; return k; } press_left() { this.keys[this.RIGHT] = this.UP; this.keys[this.ARROW_RIGHT] = this.UP; } press_right() { this.keys[this.LEFT] = this.UP; this.keys[this.ARROW_LEFT] = this.UP; } press_bottom() { this.keys[this.TOP] = this.UP; this.keys[this.ARROW_TOP] = this.UP; } press_top() { this.keys[this.BOTTOM] = this.UP; this.keys[this.ARROW_BOTTOM] = this.UP; } clear_directionnal() { this.keys[this.RIGHT] = this.UP; this.keys[this.ARROW_RIGHT] = this.UP; this.keys[this.LEFT] = this.UP; this.keys[this.ARROW_LEFT] = this.UP; this.keys[this.TOP] = this.UP; this.keys[this.ARROW_TOP] = this.UP; this.keys[this.BOTTOM] = this.UP; this.keys[this.ARROW_BOTTOM] = this.UP; } is_left() { return this.keys[this.LEFT] || this.keys[this.ARROW_LEFT]; } is_right() { return this.keys[this.RIGHT] || this.keys[this.ARROW_RIGHT]; } is_top() { return this.keys[this.TOP] || this.keys[this.ARROW_TOP]; } is_bottom() { return this.keys[this.BOTTOM] || this.keys[this.ARROW_BOTTOM]; } is_ctrl() { return this.keys[this.CTRL]; } is_1() { return this.keys[this._1]; } is_2() { return this.keys[this._2]; } is_3() { return this.keys[this._3]; } is_4() { return this.keys[this._4]; } is_space() { return this.keys[this.SPACE]; } is_r() { return this.keys[this.R]; } is_g() { return this.keys[this.G]; } is_v() { return this.keys[this.V]; } is_b() { return this.keys[this.B]; } } class EventManager { constructor() { window.addEventListener("mouseup", this.onLeftClick); window.addEventListener("contextmenu", this.onRightClick) window.addEventListener("resize", this.onResize); } onResize() { if (can.width != window.innerWidth) { can.width = window.innerWidth; canw = can.width; canw2 = can.width / 2; } if (can.height != window.innerHeight) { can.height = window.innerHeight; canh = can.height; canh2 = can.height / 2; } canm = { x: canw2, y: canh2 }; var ow = can.width; var oh = can.height; ratio = window.Math.min(1, window.Math.max(0.5, ratio_opt)); can.width = ow * ratio; can.height = oh * ratio; can.style.width = ow + "px"; can.style.height = oh + "px"; ctx.scale(ratio, ratio); /* Resize cam of user */ if (user) { user.cam.rw = ow; user.cam.rh = oh; } /* Update loading view configuration */ if (loader.is_run) loader.update(); /* Update UI configuration */ else if (ui.is_run) ui.update(); /* Update game scene */ else if (game.is_run) game.update(); /* Update scoreboard scene */ else if (scoreboard.is_run) scoreboard.update(); } onRightClick(evt) { if (keyboard.keys[16]) { client.send_command("tp $id " + Math.floor((mouse.pos.x - user.cam.x) / 100) + " " + Math.floor((mouse.pos.y - user.cam.y) / 100)); } evt.preventDefault(); } onLeftClick(evt) { switch (evt.target.id) { case "azerty_ing": game.options.azerty(); break; case "qwerty_ing": game.options.qwerty(); break; case "low_ing": game.options.low(); break; case "high_ing": game.options.high(); break; case "quit_opt": game.options.quit(); break; case "agree_ing": case "case_agree_opt": game.options.checkbox(); break; case "quest_agree_ing": case "quest_case_agree_opt": game.options.quest_checkbox(); break; case "cancel_agree_ing": case "cancel_case_agree_opt": game.options.cancel_checkbox(); break; case "auto_feed_agree_ing": case "auto_feed_case_agree_opt": game.options.feed_checkbox(); break; case "cancel_yes_delete": game.safe_cancel.yes(); break; case "cancel_no_delete": game.safe_cancel.quit(); break; case "cancel_case_delete": game.safe_cancel.checkbox(); break; case "quit_market": game.market.quit(); break; case "lock_team": client.lock_team(); break; case "leave": client.leave_team() break; case "bbback": scoreboard.quit(ui.run); break; case "quit": game.craft_list.home.quit(); break; case "quitmenu": game.craft_list.list.quit(); break; case "backhome": game.craft_list.list.previous(); break; case "hatcategory": game.craft_list.list.select(CATEGORY.CLOTHES); break; case "weaponcategory": game.craft_list.list.select(CATEGORY.WEAPONS); break; case "toolcategory": game.craft_list.list.select(CATEGORY.TOOLS); break; case "foodcategory": game.craft_list.list.select(CATEGORY.FOODS); break; case "placeablecategory": game.craft_list.list.select(CATEGORY.UTILS); break; case "constructioncategory": game.craft_list.list.select(CATEGORY.BASES); break; } } } var can = window.document.getElementById("game_canvas"); var ctx = can.getContext("2d"); var canw = can.width; var canh = can.height; var canw2 = can.width / 2; var canh2 = can.height / 2; var canm = { x: canw2, y: canh2 }; var scale = 1; var ratio = 1; var ratio_opt = 1; /* Convert into image */ function CTI(c) { var img = new Image(); img.src = c.toDataURL("image/png"); /* Cross browser */ img.width = c.width; img.height = c.height; img.isLoaded = 1; return img; } var devicePixelRatio = window.devicePixelRatio || 1; var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; var game_body = window.document.getElementById("game_body"); game_body.ondragstart = function () { return false; }; game_body.ondrop = function () { return false; }; /* Initialization of requestAnimationFrame */ (() => { var lastTime = 0; var vendors = ["ms", "moz", "webkit", "o"]; for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { window.requestAnimationFrame = window[vendors[x] + "RequestAnimationFrame"]; window.cancelAnimationFrame = window[vendors[x] + "CancelAnimationFrame"] || window[vendors[x] + "CancelRequestAnimationFrame"]; } if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback, element) { var currTime = new window.Date().getTime(); var timeToCall = window.Math.max(0, 16 - (currTime - lastTime)); var id = window.setTimeout(() => { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }; if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) { window.clearTimeout(id); }; })(); var lang = navigator.language || navigator.userLanguage; var timezone = -(new window.Date().getTimezoneOffset() / 60); var TZ_EU = "Europe"; var TZ_RU = "Russia"; var TZ_NA = "North America"; var TZ_SA = "South America"; var TZ_WA = "West America"; var TZ_AS = "Asia"; var TZ_AU = "Australia"; var TZ = TZ_EU; if (timezone >= -2 && timezone <= 2) TZ = TZ_EU; else if (timezone > 2 && timezone <= 5) TZ = TZ_RU; else if (timezone > 5 && timezone <= 9) TZ = TZ_AS; else if (timezone > 9) TZ = TZ_AU; else if (timezone >= -5 && timezone < -2) { if (lang === "pt-BR" || lang === "pt-br" || lang === "pt" || lang === "pt-pt") TZ = TZ_SA; else TZ = TZ_NA; } else if (timezone < -5) { if (lang === "pt-BR" || lang === "pt-br" || lang === "pt" || lang === "pt-pt") TZ = TZ_SA; else TZ = TZ_WA; } /* Can be recycled */ var INV_INFOS = []; INV_INFOS[ItemType.WOOD] = { img: SPRITE.INV_WOOD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.STONE] = { img: SPRITE.INV_STONE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GOLD] = { img: SPRITE.INV_GOLD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DIAMOND] = { img: SPRITE.INV_DIAMOND, grid: 0, recycle: 0 }; INV_INFOS[ItemType.AMETHYST] = { img: SPRITE.INV_AMETHYST, grid: 0, recycle: 0 }; INV_INFOS[ItemType.RABBIT_FUR] = { img: SPRITE.INV_FUR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WOLF_FUR] = { img: SPRITE.INV_FUR_WOLF, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BOAR_FUR] = { img: SPRITE.INV_FUR_BOAR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FIREFLY] = { img: SPRITE.INV_FIREFLY, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WOOD_ARROW] = { img: SPRITE.INV_WOOD_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_ARROW] = { img: SPRITE.INV_STONE_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_ARROW] = { img: SPRITE.INV_GOLD_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_ARROW] = { img: SPRITE.INV_DIAMOND_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_ARROW] = { img: SPRITE.INV_AMETHYST_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_ARROW] = { img: SPRITE.INV_REIDITE_ARROW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DRAGON_ARROW] = { img: SPRITE.INV_DRAGON_ARROW, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WINTER_FUR] = { img: SPRITE.INV_FUR_WINTER, grid: 0, recycle: 0 }; INV_INFOS[ItemType.MAMMOTH_FUR] = { img: SPRITE.INV_FUR_MAMMOTH, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CORD] = { img: SPRITE.INV_CORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.MEAT] = { img: SPRITE.INV_MEAT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FISH] = { img: SPRITE.INV_FOODFISH, grid: 0, recycle: 0 }; INV_INFOS[ItemType.KRAKEN_FUR] = { img: SPRITE.INV_KRAKEN_SKIN, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PIRANHA_SCALES] = { img: SPRITE.INV_SCALES, grid: 0, recycle: 0 }; INV_INFOS[ItemType.ICE] = { img: ItemType.ICE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.SAND] = { img: ItemType.SAND, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GROUND] = { img: ItemType.GROUND, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BERRY] = { img: SPRITE.INV_PLANT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FLOUR] = { img: SPRITE.INV_FLOUR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WHEAT] = { img: SPRITE.INV_WILD_WHEAT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WINTER_PEASANT_FUR] = { img: ItemType.WINTER_HOOD_FUR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WINTER_HOOD_FUR] = { img: ItemType.WINTER_PEASANT_FUR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PUMPKIN] = { img: SPRITE.INV_PUMPKIN, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GARLIC] = { img: SPRITE.INV_GARLIC, grid: 0, recycle: 0 }; INV_INFOS[ItemType.THORNBUSH] = { img: SPRITE.INV_THORNBUSH, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CARROT] = { img: SPRITE.INV_CARROT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.TOMATO] = { img: SPRITE.INV_TOMATO, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WATERMELON] = { img: SPRITE.INV_WATERMELON, grid: 0, recycle: 0 }; INV_INFOS[ItemType.ALOE_VERA] = { img: SPRITE.INV_ALOE_VERA, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PENGUIN_FEATHER] = { img: SPRITE.INV_PENGUIN_FEATHER, grid: 0, recycle: 0 }; INV_INFOS[ItemType.HAWK_FEATHER] = { img: SPRITE.INV_HAWK_FEATHER, grid: 0, recycle: 0 }; INV_INFOS[ItemType.VULTURE_FEATHER] = { img: SPRITE.INV_VULTURE_FEATHER, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CACTUS] = { img: SPRITE.INV_CACTUS, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PILOT_GLASSES] = { img: SPRITE.INV_PILOT_GLASSES, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PITCHFORK_PART] = { img: SPRITE.INV_PITCHFORK_PART, grid: 0, recycle: 0 }; INV_INFOS[ItemType.SANDWORM_JUICE] = { img: SPRITE.INV_SANDWORM_JUICE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.EMERALD] = { img: SPRITE.INV_EMERALD, grid: 0, recycle: 0 }; //Christmas INV_INFOS[ItemType.CHRISTMAS_HAT] = { img: SPRITE.INV_CHRISTMAS_HAT, recycle: 0 }; INV_INFOS[ItemType.ELF_HAT] = { img: SPRITE.INV_ELF_HAT, recycle: 0 }; INV_INFOS[ItemType.GARLAND] = { img: SPRITE.INV_GARLAND, recycle: 0, grid: 0 }; INV_INFOS[ItemType.CANDY] = { img: ItemType.CANDY, recycle: 0 }; INV_INFOS[ItemType.SUGAR_CAN] = { img: SPRITE.INV_SUGAR_CAN, recycle: 0 }; INV_INFOS[ItemType.PIRATE_SWORD] = { img: SPRITE.INV_PIRATE_SWORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CRAB_STICK] = { img: SPRITE.INV_CRAB_STICK, grid: 0, recycle: 0 }; //LAVA BIOME INV_INFOS[ItemType.REIDITE] = { img: SPRITE.INV_REIDITE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FLAME] = { img: SPRITE.INV_FLAME, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FIRE] = { img: SPRITE.CRAFT_FIRE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BED] = { img: SPRITE.CRAFT_BED, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WORKBENCH] = { img: SPRITE.CRAFT_WORK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_SWORD] = { img: SPRITE.CRAFT_SWORD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_PICK] = { img: SPRITE.CRAFT_PICK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BERRY_SEED] = { img: SPRITE.CRAFT_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GOLD_PICK] = { img: SPRITE.CRAFT_PICK_GOLD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_PICK] = { img: SPRITE.CRAFT_PICK_DIAMOND, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_SWORD] = { img: SPRITE.CRAFT_SWORD_WOOD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_SWORD] = { img: SPRITE.CRAFT_SWORD_GOLD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_SWORD] = { img: SPRITE.CRAFT_SWORD_DIAMOND, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_PICK] = { img: SPRITE.CRAFT_PICK_WOOD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_WALL] = { img: SPRITE.CRAFT_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_SPIKE] = { img: SPRITE.CRAFT_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.COOKED_MEAT] = { img: SPRITE.CRAFT_COOKED_MEAT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BIG_FIRE] = { img: SPRITE.CRAFT_BIG_FIRE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BANDAGE] = { img: SPRITE.CRAFT_BANDAGE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_WALL] = { img: SPRITE.CRAFT_STONE_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_WALL] = { img: SPRITE.CRAFT_GOLD_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_WALL] = { img: SPRITE.CRAFT_DIAMOND_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_DOOR] = { img: SPRITE.CRAFT_DOOR_WOOD_CLOSE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.CHEST] = { img: SPRITE.CRAFT_CHEST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_SPIKE] = { img: SPRITE.CRAFT_STONE_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_SPIKE] = { img: SPRITE.CRAFT_GOLD_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_SPIKE] = { img: SPRITE.CRAFT_DIAMOND_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_DOOR] = { img: SPRITE.CRAFT_DOOR_STONE_CLOSE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_DOOR] = { img: SPRITE.CRAFT_DOOR_GOLD_CLOSE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_DOOR] = { img: SPRITE.CRAFT_DOOR_DIAMOND_CLOSE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.EARMUFFS] = { img: SPRITE.CRAFT_EARMUFFS, grid: 0, recycle: 1 }; INV_INFOS[ItemType.COAT] = { img: SPRITE.CRAFT_COAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_SPEAR] = { img: SPRITE.CRAFT_WOOD_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_SPEAR] = { img: SPRITE.CRAFT_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_SPEAR] = { img: SPRITE.CRAFT_GOLD_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_SPEAR] = { img: SPRITE.CRAFT_DIAMOND_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DRAGON_SPEAR] = { img: SPRITE.CRAFT_DRAGON_SPEAR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_SPEAR] = { img: SPRITE.CRAFT_LAVA_SPEAR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CRAB_SPEAR] = { img: SPRITE.CRAFT_CRAB_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.CRAB_LOOT] = { img: SPRITE.INV_CRAB_LOOT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FURNACE] = { img: SPRITE.CRAFT_FURNACE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.EXPLORER_HAT] = { img: SPRITE.CRAFT_EXPLORER_HAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PIRATE_HAT] = { img: SPRITE.CRAFT_PIRATE_HAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.FLOWER_HAT] = { img: SPRITE.CRAFT_FLOWER_HAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.FUR_HAT] = { img: SPRITE.CRAFT_FUR_HAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_HELMET] = { img: SPRITE.CRAFT_WOOD_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_HELMET] = { img: SPRITE.CRAFT_STONE_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_HELMET] = { img: SPRITE.CRAFT_GOLD_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_HELMET] = { img: SPRITE.CRAFT_DIAMOND_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BOOK] = { img: SPRITE.CRAFT_BOOK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PAPER] = { img: SPRITE.CRAFT_PAPER, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BAG] = { img: SPRITE.CRAFT_BAG, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_SWORD] = { img: SPRITE.CRAFT_SWORD_AMETHYST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_PICK] = { img: SPRITE.CRAFT_PICK_AMETHYST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_SPEAR] = { img: SPRITE.CRAFT_AMETHYST_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_HAMMER] = { img: SPRITE.CRAFT_HAMMER, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_HAMMER] = { img: SPRITE.CRAFT_HAMMER_GOLD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_HAMMER] = { img: SPRITE.CRAFT_HAMMER_DIAMOND, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_HAMMER] = { img: SPRITE.CRAFT_HAMMER_AMETHYST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_HAMMER] = { img: SPRITE.CRAFT_HAMMER_REIDITE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_WALL] = { img: SPRITE.CRAFT_AMETHYST_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_SPIKE] = { img: SPRITE.CRAFT_AMETHYST_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_DOOR] = { img: SPRITE.CRAFT_DOOR_AMETHYST_CLOSE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.CAP_SCARF] = { img: SPRITE.CRAFT_CAP_SCARF, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_CORD] = { img: SPRITE.CRAFT_BLUE_CORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LOCK] = { img: SPRITE.CRAFT_LOCK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.RESURRECTION] = { img: SPRITE.CRAFT_RESURRECTION, grid: 0, recycle: 1 }; INV_INFOS[ItemType.LOCK_PICK] = { img: SPRITE.CRAFT_LOCKPICK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.TOTEM] = { img: SPRITE.CRAFT_TOTEM, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_HELMET] = { img: SPRITE.CRAFT_AMETHYST_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.SUPER_HAMMER] = { img: SPRITE.CRAFT_SUPER_HAMMER, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BRIDGE] = { img: SPRITE.CRAFT_BRIDGE, grid: 1, recycle: 1 }; INV_INFOS[ItemType.TOWER] = { img: SPRITE.CRAFT_WOOD_TOWER, grid: 1, recycle: 1 }; INV_INFOS[ItemType.BOTTLE_FULL_3] = { img: SPRITE.CRAFT_BOTTLE_FULL, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BOTTLE_FULL_2] = { img: SPRITE.CRAFT_BOTTLE_FULL, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BOTTLE_FULL] = { img: SPRITE.CRAFT_BOTTLE_FULL, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BOTTLE_EMPTY] = { img: SPRITE.CRAFT_BOTTLE_EMPTY, grid: 0, recycle: 0 }; INV_INFOS[ItemType.STONE_SHOVEL] = { img: SPRITE.CRAFT_SHOVEL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WATERING_CAN_EMPTY] = { img: SPRITE.CRAFT_WATERING_CAN, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WHEAT_SEED] = { img: SPRITE.CRAFT_WHEAT_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.COOKIE] = { img: SPRITE.CRAFT_COOKIE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WINDMILL] = { img: SPRITE.CRAFT_WINDMILL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.SUPER_DIVING_SUIT] = { img: SPRITE.CRAFT_SUPER_DIVING_SUIT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIVING_MASK] = { img: SPRITE.CRAFT_DIVING_MASK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WATERING_CAN_FULL] = { img: SPRITE.CRAFT_WATERING_CAN_FULL, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CAKE] = { img: SPRITE.CRAFT_CAKE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.FISH_COOKED] = { img: SPRITE.CRAFT_FOODFISH_COOKED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PLOT] = { img: SPRITE.CRAFT_PLOT, grid: 1, recycle: 1 }; INV_INFOS[ItemType.BREAD] = { img: SPRITE.CRAFT_BREAD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GOLD_SHOVEL] = { img: SPRITE.CRAFT_SHOVEL_GOLD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_SHOVEL] = { img: SPRITE.CRAFT_SHOVEL_DIAMOND, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_SHOVEL] = { img: SPRITE.CRAFT_SHOVEL_AMETHYST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_SHOVEL] = { img: SPRITE.CRAFT_SHOVEL_REIDITE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WRENCH] = { img: SPRITE.CRAFT_SPANNER, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_WRENCH] = { img: SPRITE.INV_GOLD_WRENCH, grid: 0, recycle: 1 }; INV_INFOS[ItemType.MACHETE] = { img: SPRITE.CRAFT_MACHETE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BREAD_OVEN] = { img: SPRITE.CRAFT_BREAD_OVEN, grid: 0, recycle: 1 }; INV_INFOS[ItemType.SANDWICH] = { img: SPRITE.CRAFT_SANDWICH, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DRAGON_HELMET] = { img: SPRITE.CRAFT_DRAGON_HELMET, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_HELMET] = { img: SPRITE.CRAFT_LAVA_HELMET, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WITCH_HAT] = { img: SPRITE.CRAFT_WITCH, grid: 0, recycle: 0 }; INV_INFOS[ItemType.NIMBUS] = { img: SPRITE.CRAFT_NIMBUS, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WAND1] = { img: SPRITE.CRAFT_WAND1, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WAND2] = { img: SPRITE.CRAFT_WAND2, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DRAGON_SWORD] = { img: SPRITE.CRAFT_DRAGON_SWORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_SWORD] = { img: SPRITE.CRAFT_LAVA_SWORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CURSED_SWORD] = { img: SPRITE.CRAFT_CURSED_SWORD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WOOD_SHIELD] = { img: SPRITE.CRAFT_WOOD_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_SHIELD] = { img: SPRITE.CRAFT_STONE_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_SHIELD] = { img: SPRITE.CRAFT_GOLD_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_SHIELD] = { img: SPRITE.CRAFT_DIAMOND_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_SHIELD] = { img: SPRITE.CRAFT_AMETHYST_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_SHIELD] = { img: SPRITE.CRAFT_REIDITE_SHIELD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_BOW] = { img: SPRITE.CRAFT_WOOD_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_BOW] = { img: SPRITE.CRAFT_STONE_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_BOW] = { img: SPRITE.CRAFT_GOLD_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_BOW] = { img: SPRITE.CRAFT_DIAMOND_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_BOW] = { img: SPRITE.CRAFT_AMETHYST_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_BOW] = { img: SPRITE.CRAFT_REIDITE_BOW, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DRAGON_BOW] = { img: SPRITE.CRAFT_DRAGON_BOW, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CROWN_GREEN] = { img: SPRITE.CRAFT_CROWN_GREEN, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GEM_GREEN] = { img: ItemType.GEM_GREEN, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DRAGON_ORB] = { img: SPRITE.INV_DRAGON_ORB, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_ORB] = { img: SPRITE.INV_LAVA_ORB, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DRAGON_CUBE] = { img: SPRITE.INV_DRAGON_CUBE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_CUBE] = { img: SPRITE.INV_LAVA_CUBE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CROWN_ORANGE] = { img: SPRITE.CRAFT_CROWN_ORANGE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GEM_ORANGE] = { img: ItemType.GEM_ORANGE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CROWN_BLUE] = { img: SPRITE.CRAFT_CROWN_BLUE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GEM_BLUE] = { img: ItemType.GEM_BLUE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.DRAGON_HEART] = { img: SPRITE.INV_DRAGON_HEART, grid: 0, recycle: 0 }; INV_INFOS[ItemType.LAVA_HEART] = { img: SPRITE.INV_LAVA_HEART, grid: 0, recycle: 0 }; INV_INFOS[ItemType.HOOD] = { img: SPRITE.CRAFT_HOOD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PEASANT] = { img: SPRITE.CRAFT_PEASANT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WINTER_PEASANT] = { img: SPRITE.CRAFT_WINTER_PEASANT, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WINTER_HOOD] = { img: SPRITE.CRAFT_WINTER_HOOD, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BUCKET_FULL] = { img: SPRITE.CRAFT_BUCKET_FULL, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BUCKET_EMPTY] = { img: SPRITE.CRAFT_BUCKET_EMPTY, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WELL] = { img: SPRITE.CRAFT_WELL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PUMPKIN_SEED] = { img: SPRITE.CRAFT_PUMPKIN_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GARLIC_SEED] = { img: SPRITE.CRAFT_GARLIC_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.THORNBUSH_SEED] = { img: SPRITE.CRAFT_THORNBUSH_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.ROOF] = { img: SPRITE.CRAFT_ROOF, grid: 1, recycle: 1 }; INV_INFOS[ItemType.CRAB_HELMET] = { img: SPRITE.CRAFT_CROWN_CRAB, grid: 0, recycle: 1 }; INV_INFOS[ItemType.CARROT_SEED] = { img: SPRITE.CRAFT_CARROT_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.TOMATO_SEED] = { img: SPRITE.CRAFT_TOMATO_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.WATERMELON_SEED] = { img: SPRITE.CRAFT_WATERMELON_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.ALOE_VERA_SEED] = { img: SPRITE.CRAFT_ALOE_VERA_SEED, grid: 0, recycle: 0 }; INV_INFOS[ItemType.TURBAN1] = { img: SPRITE.CRAFT_TURBAN1, grid: 0, recycle: 1 }; INV_INFOS[ItemType.TURBAN2] = { img: SPRITE.CRAFT_TURBAN2, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PILOT_HAT] = { img: SPRITE.CRAFT_PILOT_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.EMERALD_MACHINE] = { img: SPRITE.CRAFT_EMERALD_MACHINE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.STONE_EXTRACTOR] = { img: SPRITE.CRAFT_EXTRACTOR_MACHINE_STONE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_EXTRACTOR] = { img: SPRITE.CRAFT_EXTRACTOR_MACHINE_GOLD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_EXTRACTOR] = { img: SPRITE.CRAFT_DIAMOND_EXTRACTOR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_EXTRACTOR] = { img: SPRITE.CRAFT_EXTRACTOR_MACHINE_AMETHYST, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_EXTRACTOR] = { img: SPRITE.CRAFT_EXTRACTOR_MACHINE_REIDITE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.PITCHFORK] = { img: SPRITE.CRAFT_PITCHFORK, grid: 0, recycle: 1 }; INV_INFOS[ItemType.WOOD_DOOR_SPIKE] = { img: SPRITE.CRAFT_WOOD_DOOR_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.STONE_DOOR_SPIKE] = { img: SPRITE.CRAFT_STONE_DOOR_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.GOLD_DOOR_SPIKE] = { img: SPRITE.CRAFT_GOLD_DOOR_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.DIAMOND_DOOR_SPIKE] = { img: SPRITE.CRAFT_DIAMOND_DOOR_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_DOOR_SPIKE] = { img: SPRITE.CRAFT_AMETHYST_DOOR_SPIKE, grid: 0, recycle: 1 }; //LAVA BIOME INV_INFOS[ItemType.DIAMOND_PROTECTION] = { img: SPRITE.CRAFT_DIAMOND_PROTECTION, grid: 0, recycle: 1 }; INV_INFOS[ItemType.AMETHYST_PROTECTION] = { img: SPRITE.CRAFT_AMETHYST_PROTECTION, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_PROTECTION] = { img: SPRITE.CRAFT_REIDITE_PROTECTION, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_SWORD] = { img: SPRITE.CRAFT_REIDITE_SWORD, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_SPEAR] = { img: SPRITE.CRAFT_REIDITE_SPEAR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_HELMET] = { img: SPRITE.CRAFT_REIDITE_HELMET, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_DOOR_SPIKE] = { img: SPRITE.CRAFT_REIDITE_DOOR_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_DOOR] = { img: SPRITE.CRAFT_REIDITE_DOOR, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_SPIKE] = { img: SPRITE.CRAFT_REIDITE_SPIKE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_WALL] = { img: SPRITE.CRAFT_REIDITE_WALL, grid: 0, recycle: 1 }; INV_INFOS[ItemType.REIDITE_PICK] = { img: SPRITE.CRAFT_PICK_REIDITE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BOAT] = { img: SPRITE.CRAFT_BOAT, grid: 0, recycle: 1 }; INV_INFOS[ItemType.SLED] = { img: SPRITE.CRAFT_SLED, grid: 0, recycle: 1 }; INV_INFOS[ItemType.SADDLE] = { img: SPRITE.CRAFT_SADDLE, grid: 0, recycle: 1 }; INV_INFOS[ItemType.BOAR] = { img: SPRITE.CRAFT_MOUNT_BOAR, grid: 0, recycle: 0 }; INV_INFOS[ItemType.CRAB_BOSS] = { img: SPRITE.CRAFT_CRAB_BOSS, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BABY_DRAGON] = { img: SPRITE.CRAFT_BABY_DRAGON, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BABY_LAVA] = { img: SPRITE.CRAFT_BABY_LAVA, grid: 0, recycle: 0 }; INV_INFOS[ItemType.HAWK] = { img: SPRITE.CRAFT_HAWK, grid: 0, recycle: 0 }; INV_INFOS[ItemType.PLANE] = { img: SPRITE.CRAFT_PLANE, grid: 0, recycle: 0 }; INV_INFOS[ItemType.GOLD_PITCHFORK] = { img: SPRITE.CRAFT_PITCHFORK2, grid: 0, recycle: 0 }; INV_INFOS[ItemType.BABY_MAMMOTH] = { img: SPRITE.CRAFT_BABY_MAMMOTH, grid: 0, recycle: 0 }; var OLD_RECIPES = undefined; var LANG = []; let DIE = []; LANG[ItemType.STONE_EXTRACTOR] = ["Stone Extractor", "Can produce stone with wood", "It takes 10 seconds to drill Stone", "Durability: 2000"]; LANG[ItemType.GOLD_EXTRACTOR] = ["Gold Extractor", "Can produce gold with wood", "It takes 10 seconds to drill Gold", "Durability: 2000"]; LANG[ItemType.DIAMOND_EXTRACTOR] = ["Diamond Extractor", "Can produce diamond with wood", "It takes 10 seconds to drill Diamond", "Durability: 2000"]; LANG[ItemType.AMETHYST_EXTRACTOR] = ["Amethyst Extractor", "Can produce amethyst with wood", "It takes 10 seconds to drill Amethyst", "Durability: 2000"]; LANG[ItemType.REIDITE_EXTRACTOR] = ["Reidite Extractor", "Can produce reidite with wood", "It takes 10 seconds to drill Reidite", "Durability: 2000"]; LANG[ItemType.REIDITE_SHIELD] = ["Reidite Shield", "A must for the pros of the getaway", "You can not attack when you use it", "Damage: 6", "Players Defense: 6"]; LANG[ItemType.AMETHYST_SHIELD] = ["Amethyst Shield", "Because you know how to run away in style", "You can not attack when you use it", "Damage: 5", "Players Defense: 5"]; LANG[ItemType.DIAMOND_SHIELD] = ["Diamond Shield", "Run or attack, you've obviously made your choice.", "You can not attack when you use it", "Damage: 4", "Players Defense: 4"]; LANG[ItemType.GOLD_SHIELD] = ["Gold Shield", "When it's golden, it's always better.", "You can not attack when you use it", "Damage: 3", "Players Defense: 3"]; LANG[ItemType.STONE_SHIELD] = ["Stone Shield", "Protects you a bit more", "You can not attack when you use it", "Damage: 2", "Players Defense: 2"]; LANG[ItemType.WOOD_SHIELD] = ["Wood Shield", "Protects you a bit", "You can not attack when you use it", "Damage: 1", "Players Defense: 1"]; LANG[ItemType.MACHETE] = ["Machete", "You gather more from mob boxes", "Damage: 5"]; LANG[ItemType.TOWER] = ["Tower", "Allows you to shoot over walls with a bow", "Does not allow to pass through roofs"]; LANG[ItemType.DRAGON_ARROW] = ["Dragon Arrow", "Must be used with a Dragon Bow", "Damage: 45", "Mobs Damage: 1200", "Building Damage: 45"]; LANG[ItemType.DRAGON_BOW] = ["Dragon Bow", "Also called the One-Shot-Monster", "Requiers arrows to be used"]; LANG[ItemType.REIDITE_ARROW] = ["Reidite Arrow", "Must be used with a Reidite or a Dragon Bow", "Damage: 40", "Mobs Damage: 900", "Building Damage: 40"]; LANG[ItemType.REIDITE_BOW] = ["Reidite Bow", "Makes the most terrifying monster cry.", "Requiers any arrows, except dragon arrows, to be used"]; LANG[ItemType.AMETHYST_ARROW] = ["Amethyst Arrow", "Must be used with Amethyst, Reidite or Dragon Bow", "Damage: 35", "Mobs Damage: 600", "Building Damage: 35"]; LANG[ItemType.AMETHYST_BOW] = ["Amethyst Bow", "It's super efficient!", "Requiers any arrows, except dragon and reidite arrows, to be used"]; LANG[ItemType.DIAMOND_ARROW] = ["Diamond Arrow", "Must be used with Diamond, Amethyst, Reidite or Dragon Bow", "Damage: 30", "Mobs Damage: 300", "Building Damage: 30"]; LANG[ItemType.DIAMOND_BOW] = ["Diamond Bow", "Like a Robin Wood who would keep the diamonds", "Requiers wood, stone, gold or diamond arrows to be used"]; LANG[ItemType.GOLD_ARROW] = ["Gold Arrow", "Must be used with a Bow, except a wooden and stone one", "Damage: 25", "Mobs Damage: 200", "Building Damage: 25"]; LANG[ItemType.GOLD_BOW] = ["Gold Bow", "When it's golden, it's better.", "Requiers wood, stone or gold arrows to be used"]; LANG[ItemType.STONE_ARROW] = ["Stone Arrow", "Must be used with a Bow, except a wooden one", "Damage: 20", "Mobs Damage: 100", "Building Damage: 20"]; LANG[ItemType.STONE_BOW] = ["Stone Bow", "Like Robin Wood", "Requiers wood and stone arrows to be used"]; LANG[ItemType.WOOD_ARROW] = ["Wood Arrow", "Must be used with any bow", "Damage: 15", "Mobs Damage: 20", "Building Damage: 15"]; LANG[ItemType.WOOD_BOW] = ["Wood Bow", "A little bow that does not do many damages.", "Requiers wood arrows to be used"]; LANG[ItemType.EMERALD_MACHINE] = ["Emerald Machine", "Allows to automatically generate score points.", "Be careful, you can only build one.", "Once placed your soul is connected to the machine, if the machine is destroyed, you will die.", "The machine can't be build in the sea", "You earn more points in the desert, than in the lava, than in winter, than in the forest."]; LANG[ItemType.BOAR_FUR] = ["Boar fur", "Hakuna Matata, well, he can no longer say it"]; LANG[ItemType.MAMMOTH_FUR] = ["Mammoth fur", "Soft and warm. Perfect for a hat."]; LANG[ItemType.VULTURE_FEATHER] = ["Vulture Feather", "From a deadly vulture"]; LANG[ItemType.EMERALD] = ["Emerald", "How many golden breads can you get from it?"]; LANG[ItemType.SANDWORM_JUICE] = ["Sand Worm Juice", "I don't want to know how you got this."]; LANG[ItemType.TURBAN1] = ["Turban", "Useful to survive in the desert."]; LANG[ItemType.TURBAN2] = ["Ninja outfit", "Essential to survive in the desert"]; LANG[ItemType.PILOT_HAT] = ["Pilot Hat", "Take off and land with flying objects much faster."]; LANG[ItemType.PILOT_GLASSES] = ["Pilot Glasses"]; LANG[ItemType.BOAR] = ["Tamed Boar", "Fast on lands and slow on water."]; LANG[ItemType.BABY_MAMMOTH] = ["Tamed Baby Mammoth", "Fast on lands and slow on water."]; LANG[ItemType.CRAB_BOSS] = ["Tamed Crab Boss", "Fast on lands and water, and slow on winter.", "Gives a +10 damage bonus of the Crab Spear", "when holding a Crab Helmet"]; LANG[ItemType.BABY_DRAGON] = ["Tamed Baby Dragon", "You can fly with it.", "Faster than a hawk", "When you are flying,", " you can only hit people who are flying too"]; LANG[ItemType.BABY_LAVA] = ["Tamed Baby Lava Dragon", "You can fly with it.", "Faster than a baby dragon", "When you are flying,", " you can only hit people who are flying too"]; LANG[ItemType.HAWK] = ["Tamed Hawk", "You can fly with it.", "When you are flying,", " you can only hit people who are flying too"]; LANG[ItemType.SADDLE] = ["Saddle", "Hit a boar with it to tame it."]; LANG[ItemType.WITCH_HAT] = ["Witch Hat", "You're a wizard Starvy!"]; LANG[ItemType.NIMBUS] = ["Nimbus 2000", "That's not just a broomstick, Starvy, it's a Nimbus 2000!", "Only works with the witch hat."]; LANG[ItemType.WAND1] = ["Wand of life", "Soon we must all choose between what is right and what is easy.", "You need the witch hat and firefly to cast spell"]; LANG[ItemType.WAND2] = ["Death Wand", "The wand of He-Who-Must-Not-Be-Named... Lapa...", "You need the witch hat and firefly to cast spell"]; LANG[ItemType.FIREFLY] = ["Firefly", "They make a cute little squeak.", "However, you must tear off his wings to make magical projectiles for use with magic wands."]; LANG[ItemType.PIRATE_HAT] = ["Pirate hat", "You are faster with it in a boat", "Warm outside water and in winter"]; LANG[ItemType.SLED] = ["Sled", "You are faster with it in the snow"]; LANG[ItemType.BOAT] = ["Boat", "You are faster with it in the water"]; LANG[ItemType.PLANE] = ["Plane", "Fly in the forest, ocean and winter", "Can't fly in desert or lava biome", "When you are flying,", " you can only hit people who are flying too"]; LANG[ItemType.REIDITE_HAMMER] = ["Reidite Hammer", "Useful to destroy buildings", "Damage: 6", "Building Damage: 60"]; LANG[ItemType.PENGUIN_FEATHER] = ["Penguin Feather", "From a deadly cute penguin."]; LANG[ItemType.HAWK_FEATHER] = ["Hawk Feather", "From a deadly hawk."]; LANG[ItemType.CACTUS] = ["Cactus", "Food : 20", "Water : 10"]; LANG[ItemType.ALOE_VERA] = ["Aloe Vera", "Allows you to heal a little", "Heal : 30"]; LANG[ItemType.ALOE_VERA_SEED] = ["Aloe Vera Seed", "Grows into Aloe Vera"]; LANG[ItemType.WATERMELON] = ["Watermelon", "Like a melon, but with water", "Food : 15", "Water : 8"]; LANG[ItemType.WATERMELON_SEED] = ["Watermelon Seed", "Grows into Watermelon", "Birth: 4min", "Growth: 180s", "Need water: 3min 20s", "Durability: 400", "Lifetime: 8 days"]; LANG[ItemType.REIDITE_DOOR] = ["Reidite Door", "Noboby can destroy it. Except very reckless", "Damage: 5", "On-Hit Damage: 1", "Durability: 4000"]; LANG[ItemType.REIDITE_WALL] = ["Reidite Wall", "Better wall in StarveLand", "Durability: 4000"]; LANG[ItemType.REIDITE_SPIKE] = ["Reidite Spike", "It hurts", "Damage: 60", "On-Hit Damage: 5", "Durability: 3000"]; LANG[ItemType.REIDITE_DOOR_SPIKE] = ["Reidite Door Spike", "Painful and useful at the same time", "Damage: 35", "On-Hit Damage: 4", "Durability: 2000"]; LANG[ItemType.WOOD_DOOR_SPIKE] = ["Wood Door Spike", "Can be opened or closed by you or your friends", "Damage: 5", "On-Hit Damage: 1", "Durability: 100"]; LANG[ItemType.STONE_DOOR_SPIKE] = ["Stone Door Spike", "A stronger door is more serious", "Damage: 10", "On-Hit Damage: 2", "Durability: 200"]; LANG[ItemType.GOLD_DOOR_SPIKE] = ["Gold Door Spike", 'Are you rebuilding the "el dorado?"', "Damage: 15", "On-Hit Damage: 2", "Durability: 400"]; LANG[ItemType.DIAMOND_DOOR_SPIKE] = ["Diamond Door Spike", "For a shining house", "Damage: 25", "On-Hit Damage: 3", "Durability: 800"]; LANG[ItemType.AMETHYST_DOOR_SPIKE] = ["Amethyst Door Spike", "Is your house a locked safe?", "Damage: 30", "On-Hit Damage: 3", "Durability: 1600"]; LANG[ItemType.CARROT] = ["Carrot", "Eat it or sell it in exchange for Tomato Seed or Diamond", "Food : 20"]; LANG[ItemType.TOMATO] = ["Tomato", "Eat it or sell it in exchange for Thornbush Seed or Amethyst", "Food : 16"]; LANG[ItemType.CARROT_SEED] = ["Carrot Seed", "Grows into Carrot", "Birth: 4min", "Growth: 30s", "Need water: 1min 40s", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.TOMATO_SEED] = ["Tomato Seed", "Grows into Tomato", "Birth: 4min", "Growth: 30s", "Need water: 1min 40s", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.PITCHFORK] = ["Pitchfork", "Perfect for gathering"]; LANG[ItemType.GOLD_PITCHFORK] = ["Golden Pitchfork", "Essential for a real farmer."]; LANG[ItemType.PITCHFORK_PART] = ["Pitchfork Part", "Shaped by the gods. You'll never be hungry again."]; LANG[ItemType.LAVA_CUBE] = ["Lava Cube", "You feel an immense power emanating from this cube"]; LANG[ItemType.LAVA_ORB] = ["Lava Orb", "You feel an immense power emanating from this orb"]; LANG[ItemType.LAVA_SWORD] = ["Lava Sword", "Don't be too mean with that.", "Damage: 33", "Building Damage: 11"]; LANG[ItemType.LAVA_SPEAR] = ["Lava Spear", "Doing good or doing evil", "Damage: 24", "Building Damage: 8"]; LANG[ItemType.LAVA_HEART] = ["Lava Heart", "You can feel a strange force.", "A huge power emanates from it.", "We must not find the secret."]; LANG[ItemType.LAVA_HELMET] = ["Lava Helmet", "You will conquer the world", "Players Defense: 9", "Animals Defense: 30"]; /* NEW */ LANG[ItemType.REIDITE_SPEAR] = ["Reidite Spear", "Really useful against Lava Monsters", "Damage: 22", "Building Damage: 7"]; LANG[ItemType.REIDITE_SWORD] = ["Reidite Sword", "Really useful against Lava Monsters", "Damage: 30", "Building Damage: 10"]; LANG[ItemType.FLAME] = ["Flame", "It's hot!"]; LANG[ItemType.DIAMOND_PROTECTION] = ["Diamond Protection", "You can survive longer in lava", "Cools down in lava biome", "Players Defense: 2, Animals Defense: 8"]; LANG[ItemType.AMETHYST_PROTECTION] = ["Amethyst Protection", "You can survive longer in lava", "Cools down in lava biome", "Players Defense: 5, Animals Defense: 13"]; LANG[ItemType.REIDITE_PROTECTION] = ["Reidite Protection", "You can survive longer in lava", "Cools down in lava biome", "Players Defense: 6, Animals Defense: 19"]; LANG[ItemType.REIDITE] = ["Reidite", "The ultimate ore"]; LANG[ItemType.DRAGON_CUBE] = ["Dragon Cube", "You feel a great power emanating from this cube"]; DIE[22] = ["This crab, though frightening in nature, pinched your fingertips so hard that you had a heart attack."]; //CRAB: 22 DIE[23] = ["The heat makes you suffocate, you can see your skin fall apart. You're charred. The grilled marshmallow has never been so tasty."]; //WARM 23 DIE[24] = ["Your vital organs melt inside, fortunately the toxic gases that escape from the lava make you faint and you do not feel the excruciating pain of death."]; //LAVA 24 DIE[25] = ["The Will-O'-The-Wisp devoured you from the inside with its fiery flames."]; //FLAME_MOB 25 DIE[26] = ["Oh my God, you died in indescribable pain. Even Lapa turned his head not to see this massacre."]; //LAVA_DRAGON 26 DIE[27] = ['You were trampled by that boar. From now on, your new nickname is "the doormat".']; //BOAR 27 DIE[28] = ['With a force of 3300 newtons, the shock wave from the closing of the crab kings claw made you explode your heart from the inside. In addition, the crab has eaten you by sharing your remains with its other small crabs. All dance in joy around your corpse by performing a singular dance called the "crab rave"']; //CRAB_BOSS 28 DIE[29] = ["Even if it is a baby, under the heat of the flames of this cute dragon, you become a delicious dish."]; //BABY_DRAGON 29 DIE[30] = ["Under its cute fake looks, the lava baby dismembers you so quickly that you don't have your life flashes before your eyes."]; //BABY_LAVA 30 DIE[31] = ["The hawk slashed both your eyes out. Terrified, you try to escape by crawling and screaming in pain. Unfortunately the hawk catches you and takes you to distant skies that we already know will never see you again."]; //HAWK 31 DIE[32] = ["Believing you saw an oasis, you dived into this tree that seemed to you to be full of juicy fruit. Unfortunately, these shiny fruits were in fact horribly painful thorns. Now stuck to the cactus, exhausted by the desert, you have fainted forever."]; // CACTUS 32 DIE[33] = ["That vulture had been spying on you for a long time. He was waiting for a moment of fragility from you. Once cornered by this harassing desert, barely able to breathe, the vulture twisted on you and in a flash ripped out your last hope. At your last breath, you could still see the vulture plunge his head into what was left of your body to enjoy your entrails."]; // VULTURE 33 DIE[34] = ["Out of nowhere, the sand worm devours you in a terrifying howl. But why did Lapa bring such a despicable monster to life?"]; // SAND_WORM 34 DIE[35] = ["Exhausted by so much heat. You would like to cry, but the sand quickly dries your tears. You suffocate, sand enters your mouth, the thumping sound of the sandstorm will be the last thing you will hear... Next time, use a turban or protect yourself under a roof"]; // SAND 35 DIE[36] = ["You feel weak, your vision becomes blurry, you can feel the darkness invading your body. Your soul flies away and leaves behind a lifeless body. Your emerald machine has been destroyed."]; // EMERALD 36 DIE[37] = ['You hear "Avada Kedavra!" before you turn to ashes.']; // EMERALD 37 DIE[38] = ["You died crushed by an angry baby mammoth."]; // BABY_MAMMOTH DIE[39] = ["You were skewered by a mammoth. In the violence of the animal's charge, your heart was left hanging on the tip of the tusk. You could still see your heart beating in the open air before losing your life crushed by the mammoth's feet for good. Notice that under the pressure of the crushing your eyes have been exorbed and that the penguins use the frozen eyes of the starvers as a balloon to distract themselves."]; // MAMMOTH DIE[40] = ["The blizzard storm is so intense that your frostbite causes necrosis of all your limbs. Next time protect yourself with a roof or with warmer clothes."]; // BLIZZARD LANG[ItemType.CRAB_STICK] = ["Crab sticks", "Oh, yeah? Is there crab in the crab sticks?", "Food: 20"]; LANG[TEXT.TEMPEST_ON] = "A sandstorm is approaching in a few seconds."; LANG[TEXT.TEMPEST_OFF] = "The sandstorm will soon stop."; LANG[TEXT.BLIZZARD_ON] = "A blizzard is approaching in a few seconds."; LANG[TEXT.BLIZZARD_OFF] = "The blizzard will soon stop."; LANG[TEXT.BACK_TO_THE_GAME] = " BACK TO THE GAME"; LANG[TEXT.KIT_NEXT] = "You can buy items on the shop in the next game with your points"; LANG[TEXT.POINTS] = "points"; LANG[TEXT.SCORE] = "Score"; LANG[TEXT.KILL] = "Kill"; LANG[TEXT.DAYS_SURVIVED] = "Days survived"; LANG[TEXT.MODE_FREE] = "Building method: Free. Press G to change"; LANG[TEXT.MODE_GRID] = "Building method: Grid. Press G to change"; LANG[ItemType.CRAB_LOOT] = ["Crab Claw", "Crab claws can also be eaten", "Food: 10"]; LANG[ItemType.CRAB_SPEAR] = ["Crab Spear", "Allow you to calm crabs, and heal them", "Gives a +10 damages bonus when holding it with", "a Crab Helmet on a Crab King", "Damage: 14", "Building Damage: 4"]; LANG[ItemType.CRAB_HELMET] = ["Crab Helmet", "You are the king of crabs!", "Crabs follow you", "They can't hit you and you can't hit them", "Players Defense: 5", "Animals Defense: 19"]; LANG[ItemType.BED] = ["Bed", "Relax in this confortable bed", "You are less cold, less thirsty, and less hungry", "You will be cured faster", "Durability: 400"]; window.document.getElementById("typequest").innerHTML = "Chrono Quests"; window.document.getElementById("timeremainingquest").innerHTML = "Time Remaining"; window.document.getElementById("constraintquest").innerHTML = " Constraints"; window.document.getElementById("claim_rewards").innerHTML = " Claim rewards"; window.document.getElementById("rewardquest").innerHTML = " Reward"; window.document.getElementById("killdragon_1").innerHTML = " Collect 1 dragon heart inside the cave"; window.document.getElementById("amethyst_2").innerHTML = " Gather 1 amethyst"; window.document.getElementById("survive20min_3").innerHTML = "Survive without losing life"; window.document.getElementById("treasure_chest_4").innerHTML = " Open 5 treasure chests"; window.document.getElementById("dont_hit_5").innerHTML = " Be peaceful"; window.document.getElementById("bread_6").innerHTML = "100 bread in winter, alone, without come back"; window.document.getElementById("winter_7").innerHTML = " After 1 day, survive in winter"; for (var i = 0; i < 7; i++) window.document.getElementById("claim_reward_" + i).innerHTML = "CLAIM REWARD!"; window.document.getElementById("quit_chronoquest").innerHTML = " QUIT"; /* END NEW */ LANG[ItemType.HAND] = ["Hand"]; LANG[ItemType.GROUND] = ["Dirt", "Dirty!"]; LANG[ItemType.SAND] = ["Sand", "I got it in my eyes!"]; LANG[ItemType.WOOD] = ["Wood", "You can't get enough of it!"]; LANG[ItemType.STONE] = ["Stone", "Also called a rock"]; LANG[ItemType.GOLD] = ["Gold", "Be generous, give it to others"]; LANG[ItemType.DIAMOND] = ["Diamond", "What will you make with it?"]; LANG[ItemType.AMETHYST] = ["Amethyst", "It's Mauve like Lapa"]; LANG[ItemType.FLOUR] = ["Flour", "Used in cooking"]; LANG[ItemType.COOKIE] = ["Cookie", "A sumptuous grandmother's cookie", "Food: 50"]; LANG[ItemType.CAKE] = ["A cake", "Dream cake for the gourmets", "Food: 100"]; LANG[ItemType.MEAT] = ["Raw meat", "You can cook it with a fire", "Causes food poisoning: 10", "Food: 15"]; LANG[ItemType.COOKED_MEAT] = ["Cooked meat", "A rare steak, please", "Food: 35"]; LANG[ItemType.FISH] = ["Raw fish", "I think it's still alive", "Causes food poisoning: 10", "Food: 18"]; LANG[ItemType.FISH_COOKED] = ["Cooked fish", "With lemon it's perfect", "Food: 35"]; LANG[ItemType.BREAD] = ["Bread", "An excellent French bread", "It's the currency used in the market", "Food: 15"]; LANG[ItemType.SANDWICH] = ["Sandwich", "Tastes like Krabby Patty", "Food: 100"]; LANG[ItemType.CANDY] = ["Candies", "Only for children!", "Food: 20"]; LANG[ItemType.SUGAR_CAN] = ["Sugar cane", "Taste it, it's delicious", "Food: 100"]; LANG[ItemType.GARLAND] = ["Garland", "Perfect decoration for roofs"]; LANG[ItemType.BERRY_SEED] = ["Berries Seed", "Grows into Berry", "Birth: 2min", "Growth: 55s", "Need water: 3min 20s", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.BERRY] = ["Berry", "Berry tasty!", "Food: 10"]; LANG[ItemType.WHEAT_SEED] = ["Wheat Seed", "Grows into Wheat", "Birth: 2min", "Growth: 16s", "Need water: 2min", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.WHEAT] = ["Wild Wheat", "Turns into Flour when placed in Windmill"]; LANG[ItemType.PUMPKIN_SEED] = ["Pumpkin Seed", "Grows into pumpkin", "Birth: 2min 40s", "Growth: 2min", "Need water: 2min", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.PUMPKIN] = ["Pumpkin", "It reminds me of Halloween", "Food: 30"]; LANG[ItemType.GARLIC_SEED] = ["Garlic Seed", "Very dangerous for vampires", "Damage: 20", "Birth: 4min", "Growth: 1min 10s", "Need water: 1min 40s", "Durability: 700", "Lifetime: 8 days"]; LANG[ItemType.GARLIC] = ["Garlic", "Reduces cold", "Food: 14", "Effect: 1"]; LANG[ItemType.THORNBUSH_SEED] = ["Thorn bush Seed", "Can damage your enemies", "Damage: 20", "Birth: 4min", "Growth: 15s", "Need water: 3min", "Durability: 1000", "Lifetime: 8 days"]; LANG[ItemType.THORNBUSH] = ["Thorn bush", "It stings!"]; LANG[ItemType.PLOT] = ["Plot", "Seriously, use it", "With this GMO fertilizer your plants", "will growth really faster and need less water", "Durability: 2000"]; LANG[ItemType.ICE] = ["Ice", "Useful for making cakes and water"]; LANG[ItemType.WRENCH] = ["Wrench", "To repair doors, walls and spike", "Damage: 2"]; LANG[ItemType.GOLD_WRENCH] = ["Gold Wrench", "To repair doors, walls and spike", "Damage: 2"]; LANG[ItemType.WOLF_FUR] = ["Wolf Fur", "Puppy? But where is Puppy?!"]; LANG[ItemType.RABBIT_FUR] = ["Rabbit Fur", "That rabbit was so cute..."]; LANG[ItemType.WINTER_PEASANT_FUR] = ["Pure Fur", "You're a bread factory"]; LANG[ItemType.WINTER_HOOD_FUR] = ["Dark Fur", "You get ready to do something wrong"]; LANG[ItemType.WINTER_FUR] = ["Winter Fur", "These animals just wanted a hug..."]; LANG[ItemType.PIRANHA_SCALES] = ["Scales", "It smells like fish!"]; LANG[ItemType.KRAKEN_FUR] = ["Kraken Skin", "Weren't you too scared?"]; LANG[ItemType.FIRE] = ["Firecamp", "Warm you up!", "Durability: 150", "Lifetime: 2min"]; LANG[ItemType.BIG_FIRE] = ["Big Firecamp", "Warm you up more time!", "Durability: 400", "Lifetime: 6min"]; LANG[ItemType.WORKBENCH] = ["Workbench", "Very useful to craft all kinds of objects"]; LANG[ItemType.CORD] = ["Cord", "Used in crafting Hats and Bag"]; LANG[ItemType.DIAMOND_CORD] = ["Diamond Cord", "Used in crafting Special Hats"]; LANG[ItemType.CHEST] = ["Chest", "Allows you to store items", "Durability: 500"]; LANG[ItemType.WOOD_SWORD] = ["Wood Sword", "Does that work?", "Damage: 12", "Building Damage: 4"]; LANG[ItemType.STONE_SWORD] = ["Stone Sword", "Be nice to others", "Damage: 19", "Building Damage: 6"]; LANG[ItemType.GOLD_SWORD] = ["Gold Sword", "King of the forest", "Damage: 22", "Building Damage: 7"]; LANG[ItemType.DIAMOND_SWORD] = ["Diamond Sword", "You can feel the power", "Damage: 24", "Building Damage: 8"]; LANG[ItemType.PIRATE_SWORD] = ["Pirate Sword", "Ayyyyy!", "Better range than a normal sword", "Damage: 24", "Building Damage: 8"]; LANG[ItemType.AMETHYST_SWORD] = ["Amethyst Sword", "Mauve is the most beautiful color of the world", "Damage: 27", "Building Damage: 9"]; LANG[ItemType.DRAGON_SWORD] = ["Dragon Sword", "No mercy!", "Damage: 30", "Building Damage: 10"]; LANG[ItemType.DRAGON_SPEAR] = ["Dragon Spear", "Kill them all!", "Damage: 22", "Building Damage: 7"]; LANG[ItemType.WOOD_PICK] = ["Wood Pickaxe", "Can harvest only stone and wood", "Damage: 1"]; LANG[ItemType.STONE_PICK] = ["Stone Pickaxe", "Can harvest wood, stone and gold", "Damage: 2"]; LANG[ItemType.GOLD_PICK] = ["Gold Pickaxe", "Can also harvest diamond", "Damage: 3", "Building Damage: 1"]; LANG[ItemType.DIAMOND_PICK] = ["Diamond Pickaxe", "Can also harvest amethyst", "Damage: 4", "Building Damage: 1"]; LANG[ItemType.AMETHYST_PICK] = ["Amethyst Pickaxe", "Can also harvest reidite, looks fancy!", "Damage: 5", "Building Damage: 1"]; LANG[ItemType.REIDITE_PICK] = ["Reidite Pickaxe", "Can also harvest reidite, better look!", "Damage: 6", "Building Damage: 2"]; LANG[ItemType.STONE_HAMMER] = ["Stone Hammer", "Useful to destroy buildings", "Doesn't work well on diamond or amethyst", "Damage: 2", "Building Damage: 20"]; LANG[ItemType.GOLD_HAMMER] = ["Gold Hammer", "Useful to destroy buildings", "Doesn't work well on amethyst", "Damage: 3", "Building Damage: 30"]; LANG[ItemType.DIAMOND_HAMMER] = ["Diamond Hammer", "Useful to destroy buildings", "Damage: 4", "Building Damage: 40"]; LANG[ItemType.AMETHYST_HAMMER] = ["Amethyst Hammer", "Useful to destroy buildings", "Damage: 5", "Building Damage: 50"]; LANG[ItemType.SUPER_HAMMER] = ["Super Hammer", "Have you planned to destroy the world?", "Damage: 12", "Building Damage: 70"]; LANG[ItemType.WOOD_SPEAR] = ["Wood Spear", "Like a wooden stick, but it stings.", "Damage: 10", "Building Damage: 3"]; LANG[ItemType.CURSED_SWORD] = ["Cursed Sword", "Whispers of suffering surround its malevolent blade.", "Damage: 40", "Building Damage: 30"]; LANG[ItemType.STONE_SPEAR] = ["Stone Spear", "The beginning of evolution!", "Damage: 14", "Building Damage: 4"]; LANG[ItemType.GOLD_SPEAR] = ["Gold Spear", "Careful, it stings!", "Damage: 15", "Buildings Damage: 5"]; LANG[ItemType.DIAMOND_SPEAR] = ["Diamond Spear", "You're ready to kill a dragon", "Damage: 17", "Buildings Damage: 5"]; LANG[ItemType.AMETHYST_SPEAR] = ["Amethyst Spear", "Dragons no longer frighten you", "Damage: 18", "Buildings Damage: 6"]; LANG[ItemType.STONE_SHOVEL] = ["Stone Shovel", "Dig the ground to gather dirt, ice, and sand", "You can also gather minerals", "Damage: 2"]; LANG[ItemType.GOLD_SHOVEL] = ["Gold Shovel", "Dig the ground to gather dirt, ice, and sand", "You can also gather minerals", "Damage: 3", "Buildings Damage: 1"]; LANG[ItemType.DIAMOND_SHOVEL] = ["Diamond Shovel", "Dig the ground to gather dirt, ice, and sand", "You can also gather minerals", "Damage: 4", "Buildings Damage: 1"]; LANG[ItemType.AMETHYST_SHOVEL] = ["Amethyst Shovel", "Dig the ground to gather dirt, ice, and sand", "You can also gather minerals", "Damage: 5", "Buildings Damage: 1"]; LANG[ItemType.REIDITE_SHOVEL] = ["Reidite Shovel", "Dig the ground to gather dirt, ice, and sand", "You can also gather minerals", "Damage: 6", "Buildings Damage: 2"]; LANG[ItemType.WOOD_HELMET] = ["Wood Helmet", "Better than nothing", "Players Defense: 1", "Animals Defense: 4"]; LANG[ItemType.STONE_HELMET] = ["Stone Helmet", "You're ready for battle!", "Players Defense: 2", "Animals Defense: 8"]; LANG[ItemType.GOLD_HELMET] = ["Gold Helmet", "AKA the helmet of the savages", "Players Defense: 4", "Animals Defense: 13"]; LANG[ItemType.DIAMOND_HELMET] = ["Diamond Helmet", "Don't brag too much", "Players Defense: 5", "Animals Defense: 19"]; LANG[ItemType.AMETHYST_HELMET] = ["Amethyst Helmet", "You're no longer afraid of anything", "Players Defense: 6", "Animals Defense: 23"]; LANG[ItemType.REIDITE_HELMET] = ["Reidite Helmet", "You no longer feel pain", "Players Defense: 7", "Animals Defense: 25"]; LANG[ItemType.DRAGON_HELMET] = ["Dragon Helmet", "You will conquer the world", "Players Defense: 8", "Animals Defense: 27"]; LANG[ItemType.EXPLORER_HAT] = ["Explorer hat", "Animals won't pay attention to you", "but don't make noises!", "Warm outside water and in winter", "You also calm down aggressive monsters twice as fast"]; LANG[ItemType.CHRISTMAS_HAT] = ["Christmas Hat", "Oh, oh, oh, Merry Christmas", "Warm outside water and in winter"]; LANG[ItemType.ELF_HAT] = ["Elf Hat", "Don't let yourself be exploited, you little snow elf!", "Warm outside water and in winter"]; LANG[ItemType.HOOD] = ["Hood", "You're a rogue", "You can steal someone only if", "1) It's night", "2) You're not wearing anything", "3) If you haven't been touched for eight seconds", "4) You are not close a fire", "5) Your target doesn't wear a peasant outfit", "Warm outside water and in winter"]; LANG[ItemType.EARMUFFS] = ["Earmuffs", "Some kind of little chapka.", "Warm outside water and in winter"]; LANG[ItemType.COAT] = ["Chapka", "Also called a coat.", "Warmer outside water and in winter"]; LANG[ItemType.CAP_SCARF] = ["Winter Scarf and Cap", "Very comfortable", "Very Warm"]; LANG[ItemType.FUR_HAT] = ["Mammoth fur hat", "The best blizzard protection", "Very Warm"]; LANG[ItemType.PEASANT] = ["Peasant", "Your plants grow faster", "Warm outside water and in winter"]; LANG[ItemType.WINTER_HOOD] = ["Winter Hood", "You can steal someone only if", "- It's night", "- You're not wearing anything", "- If you haven't been touched for four seconds", "- You are not close a fire", "- Your target doesn't wear a winter peasant outfit", "Warm outside water and in winter"]; LANG[ItemType.WINTER_PEASANT] = ["Winter Peasant", "Your plants grow faster", "Warm outside water and in winter"]; LANG[ItemType.DIVING_MASK] = ["Diving Mask", "You are fast in the water", "Warm in water", "Players Defense: 2, Animals Defense: 8"]; LANG[ItemType.SUPER_DIVING_SUIT] = ["Super Diving Mask", "You are very fast in the water", "Warm in water", "Players Defense: 4, Animals Defense: 16"]; LANG[ItemType.DRAGON_ORB] = ["Dragon Orb", "You feel a great power emanating from this orb"]; LANG[ItemType.DRAGON_HEART] = ["Dragon Heart", "Turns you into a Ghost on Death!", "You are a ghost for 60 seconds", "Find a resurrection stone"]; LANG[ItemType.GEM_GREEN] = ["Green Gemstone", "You didn't cheat, promise?"]; LANG[ItemType.GEM_ORANGE] = ["Orange Gemstone", "Only a real pirate can find it!"]; LANG[ItemType.GEM_BLUE] = ["Blue Gemstone", "For too kind people"]; LANG[ItemType.CROWN_GREEN] = ["Green Crown", "You heal yourself very quickly", "Heal over time: 40", "Players Defense: 4, Animals Defense: 16"]; LANG[ItemType.CROWN_ORANGE] = ["Orange Crown", "You suddenly feel very lucky", "Players Defense: 4, Animals Defense: 16"]; LANG[ItemType.CROWN_BLUE] = ["Blue Crown", "Once you're dead, you'll become a ghost", "Though you will lose your weapon", "Players Defense: 4, Animals Defense: 16"]; LANG[ItemType.BUCKET_FULL] = ["Bucket", "Useful to fill a well", "One bucket is equivalent to twelve bottles"]; LANG[ItemType.BUCKET_EMPTY] = ["Empty Bucket", "You need to fill this bucket near a water source"]; LANG[ItemType.BOTTLE_FULL] = ["Bottle", "Allows you to drink water anywhere", "Water: 50"]; LANG[ItemType.BOTTLE_FULL_2] = ["Bottle", "Allows you to drink water anywhere", "Water: 50"]; LANG[ItemType.BOTTLE_FULL_3] = ["Bottle", "Allows you to drink water anywhere", "Water: 50"]; LANG[ItemType.BOTTLE_EMPTY] = ["Empty Bottle", "You can fill this bottle near a water source"]; LANG[ItemType.WATERING_CAN_EMPTY] = ["Empty Watering Can", "You must fill it with a water source to use it"]; LANG[ItemType.WATERING_CAN_FULL] = ["Watering Can", "Allows watering of plants", "Damage: 1"]; LANG[ItemType.BAG] = ["Bag", "More space for your items!"]; LANG[ItemType.PAPER] = ["Paper", "Used in book-crafting"]; LANG[ItemType.BOOK] = ["Book", "Allows to considerably reduce the time of crafting", "Must be wearing to work", "Damage: 1"]; LANG[ItemType.BANDAGE] = ["Bandage", "Recover more quickly your life", "Heal over time: 30", "Effect: 5"]; LANG[ItemType.LOCK] = ["Lock", "Allow you to lock your chest"]; LANG[ItemType.LOCK_PICK] = ["Lock-pick", "Allows you to unlock one chest"]; LANG[ItemType.TOTEM] = ["Totem", "Allow you to create a team", "Share doors and chests", "Harmful building won't hurt your friend"]; LANG[ItemType.BRIDGE] = ["Bridge", "Very useful on water", "It allows you to drink without drowning", "Walk faster in water"]; LANG[ItemType.ROOF] = ["Roof", "Hides you a little and warms you!", "Also protects you against sand storm"]; LANG[ItemType.WELL] = ["Well", "Allows bottle filling", "Durability: 1000"]; LANG[ItemType.WOOD_WALL] = ["Wood Wall", "It's just a wall", "Durability: 1000"]; LANG[ItemType.STONE_WALL] = ["Stone Wall", "It's a little more serious.", "Durability: 1500"]; LANG[ItemType.GOLD_WALL] = ["Gold Wall", "Gold on your walls? It's kind of flashy.", "Durability: 2000"]; LANG[ItemType.DIAMOND_WALL] = ["Diamond Wall", "So shiny, watch your eyes", "Durability: 2500"]; LANG[ItemType.AMETHYST_WALL] = ["Amethyst Wall", "You must be very scared to go out!", "Durability: 3500"]; LANG[ItemType.WOOD_SPIKE] = ["Wood Spike", "Can damage your enemies", "Damage: 10, On-Hit Damage: 2", "Durability: 150"]; LANG[ItemType.STONE_SPIKE] = ["Stone Spike", "I wouldn't want to be your enemy.", "Damage: 20", "On-Hit Damage: 3", "Durability: 300"]; LANG[ItemType.GOLD_SPIKE] = ["Gold Spike", "You're so cruel.", "Damage: 30", "On-Hit Damage: 3", "Durability: 600"]; LANG[ItemType.DIAMOND_SPIKE] = ["Diamond Spike", "You don't like to have company.", "Damage: 40", "On-Hit Damage: 4", "Durability: 1200"]; LANG[ItemType.AMETHYST_SPIKE] = ["Amethyst Spike", "What the hell did your neighbors do to you?", "Damage: 50", "On-Hit Damage: 4", "Durability: 2400"]; LANG[ItemType.WOOD_DOOR] = ["Wood Door", "Can be opened or closed by you or your friends", "Durability: 1000"]; LANG[ItemType.STONE_DOOR] = ["Stone Door", "A stronger door is more serious", "Durability: 1500"]; LANG[ItemType.GOLD_DOOR] = ["Gold Door", 'Are you rebuilding the "el dorado?"', "Durability: 2000"]; LANG[ItemType.DIAMOND_DOOR] = ["Diamond Door", "For a shining house", "Durability: 2500"]; LANG[ItemType.AMETHYST_DOOR] = ["Amethyst Door", "Is your house a locked safe?", "Durability: 3500"]; LANG[ItemType.FURNACE] = ["Furnace", "Warms you up", "It consumes wood all 5 seconds", "Durability: 1000"]; LANG[ItemType.WINDMILL] = ["Windmill", "Can produce flour from wheat", "It takes 5 seconds to make Flour", "Returns points when working", "Durability: 2000"]; LANG[ItemType.BREAD_OVEN] = ["Bread Oven", "Allows bread to be made from flour", "It takes 10 seconds to make bread", "Returns points when working", "Durability: 2000"]; LANG[ItemType.RESURRECTION] = ["Resurrection stone", "It's magic", "Resurrect you if you're a ghost", "You will lose your weapon", "Durability: 200"]; LANG[TEXT.YOU_CANNOT_JOIN] = "You cannot join this server"; LANG[TEXT.KICKED] = "Kicked: "; LANG[TEXT.KEY_ALREADY] = "Your key is already used by someone else"; LANG[TEXT.KEY_WRONG] = "Your key is wrong"; LANG[TEXT.OLD_VERSION] = "You have an old version, you need to clear your cache"; LANG[TEXT.NEW_VERSION] = "Your client version is too recent for this server. The server is being updated"; LANG[TEXT.WRONG_PASSWORD] = "Wrong password! To enter a password: https://starver.io/?password=..."; LANG[TEXT.NO_MORE_RESOURCES] = "There are no more new resources"; LANG[TEXT.SURVIVED_1DAY] = "You survived 1 day"; LANG[TEXT.SURVIVED] = "You survived "; LANG[TEXT.DAYS] = " days"; LANG[TEXT.DEAD_SAD] = "You are dead ;-;"; LANG[TEXT.SPAM_ME] = "Server cannot find spawn location! Spam the play button!"; LANG[TEXT.SPAM_ME2] = "Server is full! Spam the play button!"; LANG[TEXT.EMPTY] = "Resource is empty"; LANG[TEXT.INV_FULL] = "Inventory is full (right-click to empty items)"; LANG[TEXT.DEAD] = " is dead"; LANG[TEXT.WRONG_TOOL] = "This is not the right tool"; LANG[TEXT.JOIN_TEAM] = "You joined a team"; LANG[TEXT.YOU_DEAD] = "You are dead"; LANG[TEXT.JOINED_TEAM] = " joined the team"; LANG[TEXT.TEAM_DESTROYED] = "Your team was destroyed"; LANG[TEXT.LEFT_TEAM] = "You left the team"; LANG[TEXT.LEFT_TEAM2] = " left the team"; LANG[TEXT.TOKEN] = "Someone stole your token :>"; LANG[TEXT.CHOOSE] = "Choose a server"; LANG[TEXT.PLAYERS] = "players"; LANG[TEXT.TOTAL_PLAYERS] = "total players"; LANG[TEXT.TOTAL_MODE] = "players on this mode"; LANG[TEXT.COMMING_SOON] = "Coming soon..."; window.document.getElementById("nickname_input").placeholder = "Nickname"; DIE[0] = ["You were killed for no reason"]; //UNKNOWN : 0, DIE[1] = ["You starved to death, as the name of the game implies"]; //STARVE : 2, DIE[2] = ["You froze to death. So sad", "You got hypothermia. Next time, try sitting by a fire instead."]; //COLD : 2, DIE[3] = ["A player killed you whilst telling you to 'git gud.'", "You got murdered by a player. Don't worry, that player will die too, eventually."]; //PLAYER : 3, DIE[4] = ["You stayed too close to the fire and burnt to death. Bad idea.", "You died to a fire. Fires hurt you. Go write a story about it."]; //FIRE : 4, DIE[5] = ["Your body will become a nest for spider eggs", "A spider killed you. At least it wasn't a rabbit."]; //SPIDER : 5, DIE[6] = ["The wolf won't starve anymore after eating you", "They aren't dogs. Wolves don't like being pet."]; //WOLF : 6, DIE[7] = ["The fox was too quick for you", "The fox turned you into a box. Since when do animals have magic powers?"]; //FOX : 7, DIE[8] = ["The bear only wanted a hug.", "The bear was too much to bare. I'm not sorry."]; //BEAR : 8, DIE[9] = ["You were burnt to a crisp by a dragon. So sad.", "You got flattened by a dragon. Getting squished is a horrible way to die."]; //DRAGON : 9, DIE[10] = ["You jumped into a spike wall. Not a good idea...", "You got killed by a spike wall. Most people are sensible enough not to touch pointy things."]; //SPIKE : 10, DIE[11] = ["Even the ghost can die.", "You failed to be resurrected. This is a game, so you go to life after you die, so..."]; //GHOST : 11 DIE[12] = ["A bacterium from your raw food killed you. This game is definitely too hard.", "You killed the raw food. It killed you too."]; //RAW FOOD : 12 DIE[13] = ["You died of thirst. Better drink your own piss."]; // WATER : 13 DIE[14] = ["Did you know starver's mouths are always below water when swimming? Now you know."]; // OXYGEN : 14 DIE[15] = ["Do not worry, the piranha finds you tasty.", "Fun fact: Pirahnas eat people. Including you."]; //PIRANHA : 15, DIE[16] = ["LapaMauve does not plan that you can kill the kraken", "A kraken krak-ed your skull."]; //KRAKEN : 16, DIE[17] = ["Your skin's falling apart, the sun killed you."]; //SUN LIGHT : 17 DIE[18] = ["Garlic stored in your pockets boiled your brain."]; //GARLIC_POCKET: 18 DIE[19] = ["As a vampire, don't stand near the garlic cloves."]; //GARLIC: 19 DIE[20] = ["You ate garlic as a vampire, what did you expect?"]; //ATE GARLIC: 20 DIE[21] = ["Your body wraps itself in thornbushes. As you try to escape, your skin comes off and your heart stops beating."]; //THORNBUSH: 21 // Clone images to eventually restore some images that failed to load let DUMP_IMAGES = {}; for (var i in IMAGES) DUMP_IMAGES[i] = IMAGES[i]; let sprite = []; window.sprite = sprite; sprite[1e4] = [new Image]; sprite[10001] = [new Image]; sprite[10002] = [new Image]; sprite[10003] = [new Image]; sprite[10004] = [new Image]; sprite[10005] = [new Image]; sprite[10006] = [new Image]; sprite[10007] = [new Image]; sprite[10008] = [new Image]; sprite[10009] = [new Image]; sprite[10010] = [new Image]; sprite[10011] = [new Image]; sprite[10012] = [new Image]; sprite[10013] = [new Image]; sprite[10014] = [new Image]; sprite[10015] = [new Image]; sprite[10016] = [new Image]; sprite[10017] = [new Image]; sprite[10018] = [new Image]; sprite[10019] = [new Image]; sprite[10020] = [new Image]; sprite[10021] = [new Image]; sprite[10022] = [new Image]; sprite[10023] = [new Image]; sprite[10024] = [new Image]; sprite[10025] = [new Image]; sprite[10026] = [new Image]; sprite[10027] = [new Image]; sprite[10028] = [new Image]; sprite[10029] = [new Image]; sprite[10030] = [new Image]; sprite[10031] = [new Image]; sprite[10032] = [new Image]; sprite[10033] = [new Image]; sprite[10034] = [new Image]; sprite[10035] = [new Image]; // Spikes sprite[1e4][0].src = "spikes/day-wood-spike-ally.png"; sprite[10001][0].src = "spikes/day-wood-spike-enemy.png"; sprite[10002][0].src = "spikes/day-stone-spike-ally.png"; sprite[10003][0].src = "spikes/day-stone-spike-enemy.png"; sprite[10004][0].src = "spikes/day-gold-spike-ally.png"; sprite[10005][0].src = "spikes/day-gold-spike-enemy.png"; sprite[10006][0].src = "spikes/day-diamond-spike-ally.png"; sprite[10007][0].src = "spikes/day-diamond-spike-enemy.png"; sprite[10008][0].src = "spikes/day-amethyst-spike-ally.png"; sprite[10009][0].src = "spikes/day-amethyst-spike-enemy.png"; sprite[10010][0].src = "spikes/day-reidite-spike-ally.png"; sprite[10011][0].src = "spikes/day-reidite-spike-enemy.png"; // door spikes sprite[10024][0].src = "spikes/day-wood-spike-door-ally.png"; sprite[10025][0].src = "spikes/day-wood-spike-door-enemy.png"; sprite[10026][0].src = "spikes/day-stone-spike-door-ally.png"; sprite[10027][0].src = "spikes/day-stone-spike-door-enemy.png"; sprite[10028][0].src = "spikes/day-gold-spike-door-ally.png"; sprite[10029][0].src = "spikes/day-gold-spike-door-enemy.png"; sprite[10030][0].src = "spikes/day-diamond-spike-door-ally.png"; sprite[10031][0].src = "spikes/day-diamond-spike-door-enemy.png"; sprite[10032][0].src = "spikes/day-amethyst-spike-door-ally.png"; sprite[10033][0].src = "spikes/day-amethyst-spike-door-enemy.png"; sprite[10034][0].src = "spikes/day-reidite-spike-door-ally.png"; sprite[10035][0].src = "spikes/day-reidite-spike-door-enemy.png"; sprite[1e4][1] = sprite[1e4][0]; sprite[10001][1] = sprite[10001][0]; sprite[10002][1] = sprite[10002][0]; sprite[10003][1] = sprite[10003][0]; sprite[10004][1] = sprite[10004][0]; sprite[10005][1] = sprite[10005][0]; sprite[10006][1] = sprite[10006][0]; sprite[10007][1] = sprite[10007][0]; sprite[10008][1] = sprite[10008][0]; sprite[10009][1] = sprite[10009][0]; sprite[10010][1] = sprite[10010][0]; sprite[10011][1] = sprite[10011][0]; sprite[10012][1] = sprite[10012][0]; sprite[10013][1] = sprite[10013][0]; sprite[10014][1] = sprite[10014][0]; sprite[10015][1] = sprite[10015][0]; sprite[10016][1] = sprite[10016][0]; sprite[10017][1] = sprite[10017][0]; sprite[10018][1] = sprite[10018][0]; sprite[10019][1] = sprite[10019][0]; sprite[10020][1] = sprite[10020][0]; sprite[10021][1] = sprite[10021][0]; sprite[10022][1] = sprite[10022][0]; sprite[10023][1] = sprite[10023][0]; sprite[10024][1] = sprite[10024][0]; sprite[10025][1] = sprite[10025][0]; sprite[10026][1] = sprite[10026][0]; sprite[10027][1] = sprite[10027][0]; sprite[10028][1] = sprite[10028][0]; sprite[10029][1] = sprite[10029][0]; sprite[10030][1] = sprite[10030][0]; sprite[10031][1] = sprite[10031][0]; sprite[10032][1] = sprite[10032][0]; sprite[10033][1] = sprite[10033][0]; sprite[10034][1] = sprite[10034][0]; sprite[10035][1] = sprite[10035][0]; let COSMETICS = {}; let MINIMAP_UTILS = []; find_cosmetics_per_id = function (cosmetics, id) { for (var i = 0; i < cosmetics.length; i++) { if (cosmetics[i].id === id) return i; } return -1; }; var MINIMAP_LIST = []; function render_type_resources_minimap(type, gap) { for (var i = 0; i < MINIMAP_LIST.length; i += gap) { var r = MINIMAP_LIST[i]; if (r[0] === type) render_resource_minimap(r[0], r[1], r[2], r[3]); } } function render_all_resources_minimap() { render_type_resources_minimap("isl", 1); render_type_resources_minimap("wtb", 20); render_type_resources_minimap("la", 1); render_type_resources_minimap("c", 1); render_type_resources_minimap("s", 1); render_type_resources_minimap("f", 1); render_type_resources_minimap("p", 1); render_type_resources_minimap("g", 1); render_type_resources_minimap("d", 1); render_type_resources_minimap("a", 1); render_type_resources_minimap("re", 1); render_type_resources_minimap("m", 1); MINIMAP_LIST = []; } function add_resource_minimap(type, subtype, i, j) { MINIMAP_LIST.push([type, subtype, i, j]); } function render_resource_minimap(type, subtype, i, j) { var resource = MINIMAP_UTILS[type]; if (resource === undefined) return; for (var k = 0; k < 2; k++) { var img = resource[subtype][k]; var x = (193 * j) / world.nw; var y = (193 * i) / world.nh; var w = img.width / 3.5; var h = img.height / 3.5; sprite[SPRITE.MINIMAP_CTX][k].drawImage(img, x - w / 2, y - h / 2, w, h); x = (600 * j) / world.nw; y = (600 * i) / world.nh; w = img.width / 1.5; h = img.height / 1.5; sprite[SPRITE.BIGMAP_CTX][k].drawImage(img, x - w / 2, y - h / 2, w, h); } } render_minimap = function () { // Render map for (var i = 0; i < 2; i++) { sprite[SPRITE.MINIMAP_CTX][i].clearRect(0, 0, 193, 193); sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["MAP"][i], 0, 0, 193, 193); sprite[SPRITE.BIGMAP_CTX][i].clearRect(0, 0, 600, 600); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["MAP"][i], 0, 0, 600, 600); for (var j = world.biomes.length - 1; j >= 0; j--) { var biome = world.biomes[j]; var x = (193 * biome.x1) / (100 * world.nw); var y = (193 * biome.y1) / (100 * world.nh); var w = (193 * biome.w) / (100 * world.nw); var h = (193 * biome.h) / (100 * world.nh); var bx = (600 * biome.x1) / (100 * world.nw); var by = (600 * biome.y1) / (100 * world.nh); var bw = (600 * biome.w) / (100 * world.nw); var bh = (600 * biome.h) / (100 * world.nh); if (biome.t === world.BIOME_FOREST) { sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["FOREST"][i], x, y, w, h); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["FOREST"][i], bx, by, bw, bh); } if (biome.t === world.BIOME_WINTER) { sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["WINTER"][i], x, y, w, h); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["WINTER"][i], bx, by, bw, bh); } if (biome.t === world.BIOME_LAVA) { sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["LAVA"][i], x, y, w, h); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["LAVA"][i], bx, by, bw, bh); } if (biome.t === world.BIOME_DRAGON) { sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["CAVE"][i], x, y, w, h); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["CAVE"][i], bx, by, bw, bh); } if (biome.t === world.BIOME_DESERT) { sprite[SPRITE.MINIMAP_CTX][i].drawImage(MINIMAP_UTILS["DESERT"][i], x, y, w, h); sprite[SPRITE.BIGMAP_CTX][i].drawImage(MINIMAP_UTILS["DESERT"][i], bx, by, bw, bh); } } } }; render_cosmetics = function () { COSMETICS = { SKIN: [ { id: 0, day: IMAGES.PLAYER0D, night: IMAGES.PLAYER0N, dayHand: IMAGES.HAND0D, nightHand: IMAGES.HAND0N, rarity: RARITY.FREE, author: "Starve.io", name: "Starver" }, { id: 3, day: IMAGES.PLAYER3D, night: IMAGES.PLAYER3N, dayHand: IMAGES.HAND3D, nightHand: IMAGES.HAND3N, rarity: RARITY.FREE, author: "Starve.io", name: "Angry" }, { id: 2, day: IMAGES.PLAYER2D, night: IMAGES.PLAYER2N, dayHand: IMAGES.HAND2D, nightHand: IMAGES.HAND2N, rarity: RARITY.FREE, author: "Starve.io", name: "Sad" }, { id: 9, day: IMAGES.PLAYER9D, night: IMAGES.PLAYER9N, dayHand: IMAGES.HAND9D, nightHand: IMAGES.HAND9N, rarity: RARITY.FREE, author: "Starve.io", name: "Happy 1" }, { id: 1, day: IMAGES.PLAYER1D, night: IMAGES.PLAYER1N, dayHand: IMAGES.HAND1D, nightHand: IMAGES.HAND1N, rarity: RARITY.WOOD, author: "Starve.io", name: "What?" }, { id: 4, day: IMAGES.PLAYER4D, night: IMAGES.PLAYER4N, dayHand: IMAGES.HAND4D, nightHand: IMAGES.HAND4N, rarity: RARITY.WOOD, author: "Starve.io", name: "Suspicious" }, { id: 5, day: IMAGES.PLAYER5D, night: IMAGES.PLAYER5N, dayHand: IMAGES.HAND5D, nightHand: IMAGES.HAND5N, rarity: RARITY.WOOD, author: "Starve.io", name: "Scar" }, { id: 6, day: IMAGES.PLAYER6D, night: IMAGES.PLAYER6N, dayHand: IMAGES.HAND6D, nightHand: IMAGES.HAND6N, rarity: RARITY.WOOD, author: "Starve.io", name: "In Trouble" }, { id: 7, day: IMAGES.PLAYER7D, night: IMAGES.PLAYER7N, dayHand: IMAGES.HAND7D, nightHand: IMAGES.HAND7N, rarity: RARITY.WOOD, author: "Starve.io", name: "Cute" }, { id: 8, day: IMAGES.PLAYER8D, night: IMAGES.PLAYER8N, dayHand: IMAGES.HAND8D, nightHand: IMAGES.HAND8N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bored 1" }, { id: 10, day: IMAGES.PLAYER10D, night: IMAGES.PLAYER10N, dayHand: IMAGES.HAND10D, nightHand: IMAGES.HAND10N, rarity: RARITY.WOOD, author: "Starve.io", name: "Happy 2" }, { id: 11, day: IMAGES.PLAYER11D, night: IMAGES.PLAYER11N, dayHand: IMAGES.HAND11D, nightHand: IMAGES.HAND11N, rarity: RARITY.WOOD, author: "Starve.io", name: "Crazy" }, { id: 12, day: IMAGES.PLAYER12D, night: IMAGES.PLAYER12N, dayHand: IMAGES.HAND12D, nightHand: IMAGES.HAND12N, rarity: RARITY.WOOD, author: "Starve.io", name: "Happy 3" }, { id: 13, day: IMAGES.PLAYER13D, night: IMAGES.PLAYER13N, dayHand: IMAGES.HAND13D, nightHand: IMAGES.HAND13N, rarity: RARITY.WOOD, author: "Starve.io", name: "Very Cute" }, { id: 14, day: IMAGES.PLAYER14D, night: IMAGES.PLAYER14N, dayHand: IMAGES.HAND14D, nightHand: IMAGES.HAND14N, rarity: RARITY.WOOD, author: "Starve.io", name: "Curious" }, { id: 15, day: IMAGES.PLAYER15D, night: IMAGES.PLAYER15N, dayHand: IMAGES.HAND15D, nightHand: IMAGES.HAND15N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bored 2" }, { id: 16, day: IMAGES.PLAYER16D, night: IMAGES.PLAYER16N, dayHand: IMAGES.HAND16D, nightHand: IMAGES.HAND16N, rarity: RARITY.WOOD, author: "Starve.io", name: "Happy 4" }, { id: 17, day: IMAGES.PLAYER17D, night: IMAGES.PLAYER17N, dayHand: IMAGES.HAND17D, nightHand: IMAGES.HAND17N, rarity: RARITY.WOOD, author: "Starve.io", name: "Scar 2" }, { id: 18, day: IMAGES.PLAYER18D, night: IMAGES.PLAYER18N, dayHand: IMAGES.HAND18D, nightHand: IMAGES.HAND18N, rarity: RARITY.WOOD, author: "Starve.io", name: "Sick" }, { id: 19, day: IMAGES.PLAYER19D, night: IMAGES.PLAYER19N, dayHand: IMAGES.HAND19D, nightHand: IMAGES.HAND19N, rarity: RARITY.WOOD, author: "Starve.io", name: "Somnambule" }, { id: 24, day: IMAGES.SKIN7D, night: IMAGES.SKIN7N, dayHand: IMAGES.HAND_SKIN7D, nightHand: IMAGES.HAND_SKIN7N, rarity: RARITY.WOOD, author: "Pixelbitie", name: "Feel Bad" }, { id: 23, day: IMAGES.SKIN0D, night: IMAGES.SKIN0N, dayHand: IMAGES.HAND_SKIN0D, nightHand: IMAGES.HAND_SKIN0N, rarity: RARITY.WOOD, author: "Pixelbitie", name: "Mmmh." }, { id: 103, day: IMAGES.SKIN78D, night: IMAGES.SKIN78N, dayHand: IMAGES.HAND_SKIN78D, nightHand: IMAGES.HAND_SKIN78N, rarity: RARITY.WOOD, author: "pizza wa", name: "Panic" }, { id: 105, day: IMAGES.SKIN80D, night: IMAGES.SKIN80N, dayHand: IMAGES.HAND_SKIN80D, nightHand: IMAGES.HAND_SKIN80N, rarity: RARITY.WOOD, author: "pizza wa", name: "Hypnotic" }, { id: 106, day: IMAGES.SKIN81D, night: IMAGES.SKIN81N, dayHand: IMAGES.HAND_SKIN81D, nightHand: IMAGES.HAND_SKIN81N, rarity: RARITY.WOOD, author: "pizza wa", name: "Stars in the eyes" }, { id: 104, day: IMAGES.SKIN79D, night: IMAGES.SKIN79N, dayHand: IMAGES.HAND_SKIN79D, nightHand: IMAGES.HAND_SKIN79N, rarity: RARITY.STONE, author: "pizza wa", name: "Scared at night" }, { id: 20, day: IMAGES.SKIN_VAMPIRED, night: IMAGES.SKIN_VAMPIREN, dayHand: IMAGES.HAND_VAMPIRED, nightHand: IMAGES.HAND_VAMPIREN, rarity: RARITY.STONE, author: "Starve.io", name: "Vampire" }, { id: 21, day: IMAGES.SKIN_ZOMBIED, night: IMAGES.SKIN_ZOMBIEN, dayHand: IMAGES.HAND_ZOMBIED, nightHand: IMAGES.HAND_ZOMBIEN, rarity: RARITY.STONE, author: "Starve.io", name: "Zombie" }, { id: 22, day: IMAGES.SKIN_DEVASTD, night: IMAGES.SKIN_DEVASTN, dayHand: IMAGES.HAND_DEVASTD, nightHand: IMAGES.HAND_DEVASTN, rarity: RARITY.STONE, author: "Pixelbitie", name: "Devaster" }, { id: 116, day: IMAGES.SKIN91D, night: IMAGES.SKIN91N, dayHand: IMAGES.HAND_SKIN91D, nightHand: IMAGES.HAND_SKIN91N, rarity: RARITY.STONE, author: "Fukss", name: "Dead Devaster" }, { id: 27, day: IMAGES.SKIN19D, night: IMAGES.SKIN19N, dayHand: IMAGES.HAND_SKIN19D, nightHand: IMAGES.HAND_SKIN19N, rarity: RARITY.STONE, author: "Winter", name: "Cactus" }, { id: 28, day: IMAGES.SKIN20D, night: IMAGES.SKIN20N, dayHand: IMAGES.HAND_SKIN20D, nightHand: IMAGES.HAND_SKIN20N, rarity: RARITY.STONE, author: "pizza wa", name: "Bee" }, { id: 49, day: IMAGES.SKIN24D, night: IMAGES.SKIN24N, dayHand: IMAGES.HAND_SKIN24D, nightHand: IMAGES.HAND_SKIN24N, rarity: RARITY.STONE, author: "Taco4Life", name: "Camo Skin" }, { id: 58, day: IMAGES.SKIN34D, night: IMAGES.SKIN34N, dayHand: IMAGES.HAND_SKIN34D, nightHand: IMAGES.HAND_SKIN34N, rarity: RARITY.STONE, author: "Starve.io", name: "Blue Limax Skin" }, { id: 59, day: IMAGES.SKIN33D, night: IMAGES.SKIN33N, dayHand: IMAGES.HAND_SKIN33D, nightHand: IMAGES.HAND_SKIN33N, rarity: RARITY.STONE, author: "Starve.io", name: "Red Limax Skin" }, { id: 94, day: IMAGES.SKIN69D, night: IMAGES.SKIN69N, dayHand: IMAGES.HAND_SKIN69D, nightHand: IMAGES.HAND_SKIN69N, rarity: RARITY.STONE, author: "Taco4Life", name: "Mr. Pumpkin" }, { id: 109, day: IMAGES.SKIN84D, night: IMAGES.SKIN84N, dayHand: IMAGES.HAND_SKIN84D, nightHand: IMAGES.HAND_SKIN84N, rarity: RARITY.STONE, author: "pizza wa", name: "Wood" }, { id: 114, day: IMAGES.SKIN89D, night: IMAGES.SKIN89N, dayHand: IMAGES.HAND_SKIN89D, nightHand: IMAGES.HAND_SKIN89N, rarity: RARITY.STONE, author: "pizza wa", name: "Zebra" }, { id: 120, day: IMAGES.SKIN95D, night: IMAGES.SKIN95N, dayHand: IMAGES.HAND_SKIN95D, nightHand: IMAGES.HAND_SKIN95N, rarity: RARITY.STONE, author: "CrysTal", name: "Tiger" }, { id: 134, day: IMAGES.SKIN109D, night: IMAGES.SKIN109N, dayHand: IMAGES.HAND_SKIN109D, nightHand: IMAGES.HAND_SKIN109N, rarity: RARITY.STONE, author: "Franchestcreator", name: "Day or Night" }, { id: 135, day: IMAGES.SKIN110D, night: IMAGES.SKIN110N, dayHand: IMAGES.HAND_SKIN110D, nightHand: IMAGES.HAND_SKIN110N, rarity: RARITY.STONE, author: "Poinet", name: "Square Starver" }, { id: 136, day: IMAGES.SKIN111D, night: IMAGES.SKIN111N, dayHand: IMAGES.HAND_SKIN111D, nightHand: IMAGES.HAND_SKIN111N, rarity: RARITY.STONE, author: "Starve.io", name: "Voodoo Doll" }, { id: 137, day: IMAGES.SKIN112D, night: IMAGES.SKIN112N, dayHand: IMAGES.HAND_SKIN112D, nightHand: IMAGES.HAND_SKIN112N, rarity: RARITY.STONE, author: "Starve.io", name: "Frankenstein" }, { id: 138, day: IMAGES.SKIN114D, night: IMAGES.SKIN114N, dayHand: IMAGES.HAND_SKIN114D, nightHand: IMAGES.HAND_SKIN114N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Mummy" }, { id: 139, day: IMAGES.SKIN115D, night: IMAGES.SKIN115N, dayHand: IMAGES.HAND_SKIN115D, nightHand: IMAGES.HAND_SKIN115N, rarity: RARITY.STONE, author: "Starve.io", name: "Werewolf" }, { id: 140, day: IMAGES.SKIN116D, night: IMAGES.SKIN116N, dayHand: IMAGES.HAND_SKIN116D, nightHand: IMAGES.HAND_SKIN116N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Cthulhu" }, { id: 141, day: IMAGES.SKIN117D, night: IMAGES.SKIN117N, dayHand: IMAGES.HAND_SKIN117D, nightHand: IMAGES.HAND_SKIN117N, rarity: RARITY.STONE, author: "Starve.io", name: "Sea Man" }, { id: 142, day: IMAGES.SKIN118D, night: IMAGES.SKIN118N, dayHand: IMAGES.HAND_SKIN118D, nightHand: IMAGES.HAND_SKIN118N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Pumpkin" }, { id: 148, day: IMAGES.SKIN124D, night: IMAGES.SKIN124N, dayHand: IMAGES.HAND_SKIN124D, nightHand: IMAGES.HAND_SKIN124N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Snowman" }, { id: 149, day: IMAGES.SKIN125D, night: IMAGES.SKIN125N, dayHand: IMAGES.HAND_SKIN125D, nightHand: IMAGES.HAND_SKIN125N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Christmas Tree Man" }, { id: 150, day: IMAGES.SKIN126D, night: IMAGES.SKIN126N, dayHand: IMAGES.HAND_SKIN126D, nightHand: IMAGES.HAND_SKIN126N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Mrs Bell" }, { id: 151, day: IMAGES.SKIN127D, night: IMAGES.SKIN127N, dayHand: IMAGES.HAND_SKIN127D, nightHand: IMAGES.HAND_SKIN127N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Elfy" }, { id: 152, day: IMAGES.SKIN128D, night: IMAGES.SKIN128N, dayHand: IMAGES.HAND_SKIN128D, nightHand: IMAGES.HAND_SKIN128N, rarity: RARITY.STONE, author: "Starve.io", name: "Old Mr Present" }, { id: 153, day: IMAGES.SKIN129D, night: IMAGES.SKIN129N, dayHand: IMAGES.HAND_SKIN129D, nightHand: IMAGES.HAND_SKIN129N, rarity: RARITY.STONE, author: "Starve.io", name: "My Dear Old Deer" }, { id: 154, day: IMAGES.SKIN130D, night: IMAGES.SKIN130N, dayHand: IMAGES.HAND_SKIN130D, nightHand: IMAGES.HAND_SKIN130N, rarity: RARITY.STONE, author: "Starve.io", name: "Mr Angel" }, { id: 155, day: IMAGES.SKIN131D, night: IMAGES.SKIN131N, dayHand: IMAGES.HAND_SKIN131D, nightHand: IMAGES.HAND_SKIN131N, rarity: RARITY.STONE, author: "Starve.io", name: "Mr Ice Cube" }, { id: 156, day: IMAGES.SKIN132D, night: IMAGES.SKIN132N, dayHand: IMAGES.HAND_SKIN132D, nightHand: IMAGES.HAND_SKIN132N, rarity: RARITY.STONE, author: "Starve.io", name: "Mr Snowman" }, { id: 159, day: IMAGES.SKIN135D, night: IMAGES.SKIN135N, dayHand: IMAGES.HAND_SKIN135D, nightHand: IMAGES.HAND_SKIN135N, rarity: RARITY.STONE, author: "CrysTal", name: "Crystal Sky Skin" }, { id: 167, day: IMAGES.SKIN143D, night: IMAGES.SKIN143N, dayHand: IMAGES.HAND_SKIN143D, nightHand: IMAGES.HAND_SKIN143N, rarity: RARITY.STONE, author: "Franchestcreator", name: "Radioactive Starver" }, { id: 169, day: IMAGES.SKIN146D, night: IMAGES.SKIN146N, dayHand: IMAGES.HAND_SKIN146D, nightHand: IMAGES.HAND_SKIN146N, rarity: RARITY.STONE, author: "TheScaryBlaze", name: "Eaten Cookie" }, { id: 170, day: IMAGES.SKIN147D, night: IMAGES.SKIN147N, dayHand: IMAGES.HAND_SKIN147D, nightHand: IMAGES.HAND_SKIN147N, rarity: RARITY.STONE, author: "aloner", name: "Blob Thing" }, { id: 172, day: IMAGES.SKIN149D, night: IMAGES.SKIN149N, dayHand: IMAGES.HAND_SKIN149D, nightHand: IMAGES.HAND_SKIN149N, rarity: RARITY.STONE, author: "aloner", name: "Machine Mask" }, { id: 29, day: IMAGES.SKIN2D, night: IMAGES.SKIN2N, dayHand: IMAGES.HAND_SKIN2D, nightHand: IMAGES.HAND_SKIN2N, rarity: RARITY.GOLD, author: "Pixelbitie", name: "Lollipop 1" }, { id: 30, day: IMAGES.SKIN3D, night: IMAGES.SKIN3N, dayHand: IMAGES.HAND_SKIN3D, nightHand: IMAGES.HAND_SKIN3N, rarity: RARITY.GOLD, author: "Starve.io", name: "Lollipop 2" }, { id: 31, day: IMAGES.SKIN4D, night: IMAGES.SKIN4N, dayHand: IMAGES.HAND_SKIN4D, nightHand: IMAGES.HAND_SKIN4N, rarity: RARITY.GOLD, author: "Starve.io", name: "Lollipop 3" }, { id: 32, day: IMAGES.SKIN5D, night: IMAGES.SKIN5N, dayHand: IMAGES.HAND_SKIN5D, nightHand: IMAGES.HAND_SKIN5N, rarity: RARITY.GOLD, author: "Starve.io", name: "Lollipop 4" }, { id: 33, day: IMAGES.SKIN8D, night: IMAGES.SKIN8N, dayHand: IMAGES.HAND_SKIN8D, nightHand: IMAGES.HAND_SKIN8N, rarity: RARITY.GOLD, author: "Sushui", name: "Yellow Bird" }, { id: 34, day: IMAGES.SKIN9D, night: IMAGES.SKIN9N, dayHand: IMAGES.HAND_SKIN9D, nightHand: IMAGES.HAND_SKIN9N, rarity: RARITY.GOLD, author: "Sushui", name: "Red Bird" }, { id: 35, day: IMAGES.SKIN10D, night: IMAGES.SKIN10N, dayHand: IMAGES.HAND_SKIN10D, nightHand: IMAGES.HAND_SKIN10N, rarity: RARITY.GOLD, author: "Sushui", name: "Blue Bird" }, { id: 37, day: IMAGES.SKIN17D, night: IMAGES.SKIN17N, dayHand: IMAGES.HAND_SKIN17D, nightHand: IMAGES.HAND_SKIN17N, rarity: RARITY.GOLD, author: "Winter", name: "Owl" }, { id: 52, day: IMAGES.SKIN27D, night: IMAGES.SKIN27N, dayHand: IMAGES.HAND_SKIN27D, nightHand: IMAGES.HAND_SKIN27N, rarity: RARITY.GOLD, author: "Starve.io", name: "Nemo" }, { id: 53, day: IMAGES.SKIN28D, night: IMAGES.SKIN28N, dayHand: IMAGES.HAND_SKIN28D, nightHand: IMAGES.HAND_SKIN28N, rarity: RARITY.GOLD, author: "Starve.io", name: "Mr. Bread" }, { id: 74, day: IMAGES.SKIN49D, night: IMAGES.SKIN49N, dayHand: IMAGES.HAND_SKIN49D, nightHand: IMAGES.HAND_SKIN49N, rarity: RARITY.GOLD, author: "Communist & Taco4Life", name: "Mr. Bread 2" }, { id: 75, day: IMAGES.SKIN50D, night: IMAGES.SKIN50N, dayHand: IMAGES.HAND_SKIN50D, nightHand: IMAGES.HAND_SKIN50N, rarity: RARITY.GOLD, author: "Communist & Taco4Life", name: "Mr. Bread 3" }, { id: 60, day: IMAGES.SKIN35D, night: IMAGES.SKIN35N, dayHand: IMAGES.HAND_SKIN35D, nightHand: IMAGES.HAND_SKIN35N, rarity: RARITY.GOLD, author: "Starve.io", name: "Red Berry" }, { id: 61, day: IMAGES.SKIN36D, night: IMAGES.SKIN36N, dayHand: IMAGES.HAND_SKIN36D, nightHand: IMAGES.HAND_SKIN36N, rarity: RARITY.GOLD, author: "Starve.io", name: "Old Berry" }, { id: 70, day: IMAGES.SKIN45D, night: IMAGES.SKIN45N, dayHand: IMAGES.HAND_SKIN45D, nightHand: IMAGES.HAND_SKIN45N, rarity: RARITY.GOLD, author: "eogito", name: "Cake" }, { id: 71, day: IMAGES.SKIN46D, night: IMAGES.SKIN46N, dayHand: IMAGES.HAND_SKIN46D, nightHand: IMAGES.HAND_SKIN46N, rarity: RARITY.GOLD, author: "eogito", name: "Christmas Cake" }, { id: 77, day: IMAGES.SKIN52D, night: IMAGES.SKIN52N, dayHand: IMAGES.HAND_SKIN52D, nightHand: IMAGES.HAND_SKIN52N, rarity: RARITY.GOLD, author: "Pancakez", name: "Mr. Pancake" }, { id: 87, day: IMAGES.SKIN62D, night: IMAGES.SKIN62N, dayHand: IMAGES.HAND_SKIN62D, nightHand: IMAGES.HAND_SKIN62N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Mr. Taco" }, { id: 78, day: IMAGES.SKIN53D, night: IMAGES.SKIN53N, dayHand: IMAGES.HAND_SKIN53D, nightHand: IMAGES.HAND_SKIN53N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Mr. Bottle" }, { id: 79, day: IMAGES.SKIN54D, night: IMAGES.SKIN54N, dayHand: IMAGES.HAND_SKIN54D, nightHand: IMAGES.HAND_SKIN54N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Mr. Bottle 2" }, { id: 97, day: IMAGES.SKIN71D, night: IMAGES.SKIN71N, dayHand: IMAGES.HAND_SKIN71D, nightHand: IMAGES.HAND_SKIN71N, rarity: RARITY.GOLD, author: "eogito", name: "Pink Rabbit" }, { id: 102, day: IMAGES.SKIN77D, night: IMAGES.SKIN77N, dayHand: IMAGES.HAND_SKIN77D, nightHand: IMAGES.HAND_SKIN77N, rarity: RARITY.GOLD, author: "pizza wa", name: "Marshmallow" }, { id: 107, day: IMAGES.SKIN82D, night: IMAGES.SKIN82N, dayHand: IMAGES.HAND_SKIN82D, nightHand: IMAGES.HAND_SKIN82N, rarity: RARITY.GOLD, author: "eogito", name: "Fox" }, { id: 132, day: IMAGES.SKIN107D, night: IMAGES.SKIN107N, dayHand: IMAGES.HAND_SKIN107D, nightHand: IMAGES.HAND_SKIN107N, rarity: RARITY.GOLD, author: "eogito", name: "Raccoon" }, { id: 111, day: IMAGES.SKIN86D, night: IMAGES.SKIN86N, dayHand: IMAGES.HAND_SKIN86D, nightHand: IMAGES.HAND_SKIN86N, rarity: RARITY.GOLD, author: "pizza wa", name: "Cloud" }, { id: 113, day: IMAGES.SKIN88D, night: IMAGES.SKIN88N, dayHand: IMAGES.HAND_SKIN88D, nightHand: IMAGES.HAND_SKIN88N, rarity: RARITY.GOLD, author: "pizza wa", name: "Moon" }, { id: 117, day: IMAGES.SKIN92D, night: IMAGES.SKIN92N, dayHand: IMAGES.HAND_SKIN92D, nightHand: IMAGES.HAND_SKIN92N, rarity: RARITY.GOLD, author: "eogito", name: "Mr. Panda" }, { id: 118, day: IMAGES.SKIN93D, night: IMAGES.SKIN93N, dayHand: IMAGES.HAND_SKIN93D, nightHand: IMAGES.HAND_SKIN93N, rarity: RARITY.GOLD, author: "eogito", name: "Mr. Strawberry" }, { id: 119, day: IMAGES.SKIN94D, night: IMAGES.SKIN94N, dayHand: IMAGES.HAND_SKIN94D, nightHand: IMAGES.HAND_SKIN94N, rarity: RARITY.GOLD, author: "eogito & Sushuui", name: "Mummy" }, { id: 122, day: IMAGES.SKIN97D, night: IMAGES.SKIN97N, dayHand: IMAGES.HAND_SKIN97D, nightHand: IMAGES.HAND_SKIN97N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Dino" }, { id: 127, day: IMAGES.SKIN102D, night: IMAGES.SKIN102N, dayHand: IMAGES.HAND_SKIN102D, nightHand: IMAGES.HAND_SKIN102N, rarity: RARITY.GOLD, author: "MADBalgouthi", name: "Mr. Koala" }, { id: 160, day: IMAGES.SKIN136D, night: IMAGES.SKIN136N, dayHand: IMAGES.HAND_SKIN136D, nightHand: IMAGES.HAND_SKIN136N, rarity: RARITY.GOLD, author: "Starve.io", name: "Bottle Protection" }, { id: 162, day: IMAGES.SKIN138D, night: IMAGES.SKIN138N, dayHand: IMAGES.HAND_SKIN138D, nightHand: IMAGES.HAND_SKIN138N, rarity: RARITY.GOLD, author: "CrysTal", name: "Leaf Man" }, { id: 166, day: IMAGES.SKIN142D, night: IMAGES.SKIN142N, dayHand: IMAGES.HAND_SKIN142D, nightHand: IMAGES.HAND_SKIN142N, rarity: RARITY.GOLD, author: "pizza wa", name: "Bubble" }, { id: 174, day: IMAGES.SKIN145D, night: IMAGES.SKIN145N, dayHand: IMAGES.HAND_SKIN145D, nightHand: IMAGES.HAND_SKIN145N, rarity: RARITY.GOLD, author: "upfiz", name: "Potato" }, { id: 171, day: IMAGES.SKIN148D, night: IMAGES.SKIN148N, dayHand: IMAGES.HAND_SKIN148D, nightHand: IMAGES.HAND_SKIN148N, rarity: RARITY.GOLD, author: "aloner", name: "Axolotl" }, { id: 25, day: IMAGES.SKIN6D, night: IMAGES.SKIN6N, dayHand: IMAGES.HAND_SKIN6D, nightHand: IMAGES.HAND_SKIN0N, rarity: RARITY.DIAMOND, author: "Pixelbitie", name: "Test Dummy" }, { id: 41, day: IMAGES.SKIN_STARD, night: IMAGES.SKIN_STARN, dayHand: IMAGES.HAND_STARD, nightHand: IMAGES.HAND_STARN, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Star-ver" }, { id: 43, day: IMAGES.SKIN11D, night: IMAGES.SKIN11N, dayHand: IMAGES.HAND_SKIN11D, nightHand: IMAGES.HAND_SKIN11N, rarity: RARITY.DIAMOND, author: "Communist", name: "Starver Chest" }, { id: 88, day: IMAGES.SKIN63D, night: IMAGES.SKIN63N, dayHand: IMAGES.HAND_SKIN63D, nightHand: IMAGES.HAND_SKIN63N, rarity: RARITY.DIAMOND, author: "Communist", name: "Starver Workbench" }, { id: 121, day: IMAGES.SKIN96D, night: IMAGES.SKIN96N, dayHand: IMAGES.HAND_SKIN96D, nightHand: IMAGES.HAND_SKIN96N, rarity: RARITY.DIAMOND, author: "MADBalgouthi", name: "Fish" }, { id: 39, day: IMAGES.SKIN22D, night: IMAGES.SKIN22N, dayHand: IMAGES.HAND_SKIN22D, nightHand: IMAGES.HAND_SKIN22N, rarity: RARITY.DIAMOND, author: "Negligent4Dia", name: "Crab" }, { id: 40, day: IMAGES.SKIN23D, night: IMAGES.SKIN23N, dayHand: IMAGES.HAND_SKIN23D, nightHand: IMAGES.HAND_SKIN23N, rarity: RARITY.DIAMOND, author: "Negligent4Dia", name: "Piranha" }, { id: 36, day: IMAGES.SKIN16D, night: IMAGES.SKIN16N, dayHand: IMAGES.HAND_SKIN16D, nightHand: IMAGES.HAND_SKIN16N, rarity: RARITY.DIAMOND, author: "eogito", name: "Winter Fox" }, { id: 69, day: IMAGES.SKIN44D, night: IMAGES.SKIN44N, dayHand: IMAGES.HAND_SKIN44D, nightHand: IMAGES.HAND_SKIN44N, rarity: RARITY.DIAMOND, author: "Zed", name: "Baby Foxy" }, { id: 51, day: IMAGES.SKIN26D, night: IMAGES.SKIN26N, dayHand: IMAGES.HAND_SKIN26D, nightHand: IMAGES.HAND_SKIN26N, rarity: RARITY.DIAMOND, author: "HOWI", name: "Winter Bear" }, { id: 133, day: IMAGES.SKIN108D, night: IMAGES.SKIN108N, dayHand: IMAGES.HAND_SKIN108D, nightHand: IMAGES.HAND_SKIN108N, rarity: RARITY.DIAMOND, author: "eogito", name: "Hawk" }, { id: 55, day: IMAGES.SKIN30D, night: IMAGES.SKIN30N, dayHand: IMAGES.HAND_SKIN30D, nightHand: IMAGES.HAND_SKIN30N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Nice Little Yuki" }, { id: 68, day: IMAGES.SKIN43D, night: IMAGES.SKIN43N, dayHand: IMAGES.HAND_SKIN43D, nightHand: IMAGES.HAND_SKIN43N, rarity: RARITY.DIAMOND, author: "Taco4Life", name: "Baby Yuki" }, { id: 62, day: IMAGES.SKIN37D, night: IMAGES.SKIN37N, dayHand: IMAGES.HAND_SKIN37D, nightHand: IMAGES.HAND_SKIN37N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Carrot" }, { id: 56, day: IMAGES.SKIN31D, night: IMAGES.SKIN31N, dayHand: IMAGES.HAND_SKIN31D, nightHand: IMAGES.HAND_SKIN31N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Bat Limax" }, { id: 72, day: IMAGES.SKIN47D, night: IMAGES.SKIN47N, dayHand: IMAGES.HAND_SKIN47D, nightHand: IMAGES.HAND_SKIN47N, rarity: RARITY.DIAMOND, author: "eogito", name: "Mr. Crate" }, { id: 73, day: IMAGES.SKIN48D, night: IMAGES.SKIN48N, dayHand: IMAGES.HAND_SKIN48D, nightHand: IMAGES.HAND_SKIN48N, rarity: RARITY.DIAMOND, author: "Taco4Life & eogito", name: "Mr. Spider" }, { id: 93, day: IMAGES.SKIN68D, night: IMAGES.SKIN68N, dayHand: IMAGES.HAND_SKIN68D, nightHand: IMAGES.HAND_SKIN68N, rarity: RARITY.DIAMOND, author: "Anyone want to play?", name: "Mr. Spider 2" }, { id: 82, day: IMAGES.SKIN57D, night: IMAGES.SKIN57N, dayHand: IMAGES.HAND_SKIN57D, nightHand: IMAGES.HAND_SKIN57N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Blue Starfish" }, { id: 83, day: IMAGES.SKIN58D, night: IMAGES.SKIN58N, dayHand: IMAGES.HAND_SKIN58D, nightHand: IMAGES.HAND_SKIN58N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Orange Starfish" }, { id: 84, day: IMAGES.SKIN59D, night: IMAGES.SKIN59N, dayHand: IMAGES.HAND_SKIN59D, nightHand: IMAGES.HAND_SKIN59N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Pink Starfish" }, { id: 85, day: IMAGES.SKIN60D, night: IMAGES.SKIN60N, dayHand: IMAGES.HAND_SKIN60D, nightHand: IMAGES.HAND_SKIN60N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. ShellMauve" }, { id: 86, day: IMAGES.SKIN61D, night: IMAGES.SKIN61N, dayHand: IMAGES.HAND_SKIN61D, nightHand: IMAGES.HAND_SKIN61N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Shell Bead" }, { id: 96, day: IMAGES.SKIN72D, night: IMAGES.SKIN72N, dayHand: IMAGES.HAND_SKIN72D, nightHand: IMAGES.HAND_SKIN72N, rarity: RARITY.DIAMOND, author: "Fukss", name: "Angry Crab" }, { id: 98, day: IMAGES.SKIN73D, night: IMAGES.SKIN73N, dayHand: IMAGES.HAND_SKIN73D, nightHand: IMAGES.HAND_SKIN73N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Penguin" }, { id: 126, day: IMAGES.SKIN101D, night: IMAGES.SKIN101N, dayHand: IMAGES.HAND_SKIN101D, nightHand: IMAGES.HAND_SKIN101N, rarity: RARITY.DIAMOND, author: "Anyone want to play?", name: "Mr. Boar" }, { id: 145, day: IMAGES.SKIN121D, night: IMAGES.SKIN121N, dayHand: IMAGES.HAND_SKIN121D, nightHand: IMAGES.HAND_SKIN121N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "I saw you" }, { id: 146, day: IMAGES.SKIN122D, night: IMAGES.SKIN122N, dayHand: IMAGES.HAND_SKIN122D, nightHand: IMAGES.HAND_SKIN122N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "It was funny" }, { id: 147, day: IMAGES.SKIN123D, night: IMAGES.SKIN123N, dayHand: IMAGES.HAND_SKIN123D, nightHand: IMAGES.HAND_SKIN123N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "You can scream" }, { id: 158, day: IMAGES.SKIN134D, night: IMAGES.SKIN134N, dayHand: IMAGES.HAND_SKIN134D, nightHand: IMAGES.HAND_SKIN134N, rarity: RARITY.DIAMOND, author: "eogito", name: "Mr. Book" }, { id: 163, day: IMAGES.SKIN139D, night: IMAGES.SKIN139N, dayHand: IMAGES.HAND_SKIN139D, nightHand: IMAGES.HAND_SKIN139N, rarity: RARITY.DIAMOND, author: "Anyone want to play?", name: "Mr. Mammoth" }, { id: 164, day: IMAGES.SKIN140D, night: IMAGES.SKIN140N, dayHand: IMAGES.HAND_SKIN140D, nightHand: IMAGES.HAND_SKIN140N, rarity: RARITY.DIAMOND, author: "SoOw", name: "Mr. Mammoth 2" }, { id: 161, day: IMAGES.SKIN137D, night: IMAGES.SKIN137N, dayHand: IMAGES.HAND_SKIN137D, nightHand: IMAGES.HAND_SKIN137N, rarity: RARITY.DIAMOND, author: "eogito", name: "Nightmare" }, { id: 168, day: IMAGES.SKIN144D, night: IMAGES.SKIN144N, dayHand: IMAGES.HAND_SKIN144D, nightHand: IMAGES.HAND_SKIN144N, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Shiny Crystal" }, { id: 173, day: IMAGES.SKIN150D, night: IMAGES.SKIN150N, dayHand: IMAGES.HAND_SKIN150D, nightHand: IMAGES.HAND_SKIN150N, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Water skin" }, { id: 42, day: IMAGES.SKIN14D, night: IMAGES.SKIN14N, dayHand: IMAGES.HAND_SKIN14D, nightHand: IMAGES.HAND_SKIN14N, rarity: RARITY.AMETHYST, author: "Winter", name: "Will-O'-The-Wisp" }, { id: 91, day: IMAGES.SKIN66D, night: IMAGES.SKIN66N, dayHand: IMAGES.HAND_SKIN66D, nightHand: IMAGES.HAND_SKIN66N, rarity: RARITY.AMETHYST, author: "ExpertyAnimations", name: "Flame" }, { id: 26, day: IMAGES.SKIN15D, night: IMAGES.SKIN15N, dayHand: IMAGES.HAND_SKIN15D, nightHand: IMAGES.HAND_SKIN15N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Be a Tree" }, { id: 38, day: IMAGES.SKIN18D, night: IMAGES.SKIN18N, dayHand: IMAGES.HAND_SKIN18D, nightHand: IMAGES.HAND_SKIN18N, rarity: RARITY.AMETHYST, author: "Winter", name: "Toxic Mutant" }, { id: 50, day: IMAGES.SKIN25D, night: IMAGES.SKIN25N, dayHand: IMAGES.HAND_SKIN25D, nightHand: IMAGES.HAND_SKIN25N, rarity: RARITY.AMETHYST, author: "Communist", name: "Mr. Tomato" }, { id: 54, day: IMAGES.SKIN29D, night: IMAGES.SKIN29N, dayHand: IMAGES.HAND_SKIN29D, nightHand: IMAGES.HAND_SKIN29N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mr. Mauve, the Lapa" }, { id: 57, day: IMAGES.SKIN32D, night: IMAGES.SKIN32N, dayHand: IMAGES.HAND_SKIN32D, nightHand: IMAGES.HAND_SKIN32N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Golden Fish" }, { id: 64, day: IMAGES.SKIN39D, night: IMAGES.SKIN39N, dayHand: IMAGES.HAND_SKIN39D, nightHand: IMAGES.HAND_SKIN39N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "LapaMauve" }, { id: 65, day: IMAGES.SKIN40D, night: IMAGES.SKIN40N, dayHand: IMAGES.HAND_SKIN40D, nightHand: IMAGES.HAND_SKIN40N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "LapaMauve " }, { id: 92, day: IMAGES.SKIN67D, night: IMAGES.SKIN67N, dayHand: IMAGES.HAND_SKIN67D, nightHand: IMAGES.HAND_SKIN67N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mr. Burger" }, { id: 66, day: IMAGES.SKIN41D, night: IMAGES.SKIN41N, dayHand: IMAGES.HAND_SKIN41D, nightHand: IMAGES.HAND_SKIN41N, rarity: RARITY.AMETHYST, author: "pizza wa", name: "Tropical Starver" }, { id: 80, day: IMAGES.SKIN55D, night: IMAGES.SKIN55N, dayHand: IMAGES.HAND_SKIN55D, nightHand: IMAGES.HAND_SKIN55N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mr. ShellPink" }, { id: 81, day: IMAGES.SKIN56D, night: IMAGES.SKIN56N, dayHand: IMAGES.HAND_SKIN56D, nightHand: IMAGES.HAND_SKIN56N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mr. OranShell" }, { id: 99, day: IMAGES.SKIN74D, night: IMAGES.SKIN74N, dayHand: IMAGES.HAND_SKIN74D, nightHand: IMAGES.HAND_SKIN74N, rarity: RARITY.AMETHYST, author: "eogito", name: "Pepe" }, { id: 100, day: IMAGES.SKIN75D, night: IMAGES.SKIN75N, dayHand: IMAGES.HAND_SKIN75D, nightHand: IMAGES.HAND_SKIN75N, rarity: RARITY.AMETHYST, author: "fatant", name: "Mr. Ant" }, { id: 115, day: IMAGES.SKIN90D, night: IMAGES.SKIN90N, dayHand: IMAGES.HAND_SKIN90D, nightHand: IMAGES.HAND_SKIN90N, rarity: RARITY.AMETHYST, author: "MADBalgouthi", name: "Mr. Watermelon" }, { id: 101, day: IMAGES.SKIN76D, night: IMAGES.SKIN76N, dayHand: IMAGES.HAND_SKIN76D, nightHand: IMAGES.HAND_SKIN76N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Mr. Thornbush" }, { id: 131, day: IMAGES.SKIN106D, night: IMAGES.SKIN106N, dayHand: IMAGES.HAND_SKIN106D, nightHand: IMAGES.HAND_SKIN106N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Cthulhu" }, { id: 143, day: IMAGES.SKIN119D, night: IMAGES.SKIN119N, dayHand: IMAGES.HAND_SKIN119D, nightHand: IMAGES.HAND_SKIN119N, rarity: RARITY.AMETHYST, author: "eogito", name: "Mr. Cactus" }, { id: 144, day: IMAGES.SKIN120D, night: IMAGES.SKIN120N, dayHand: IMAGES.HAND_SKIN120D, nightHand: IMAGES.HAND_SKIN120N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Momo" }, { id: 95, day: IMAGES.SKIN70D, night: IMAGES.SKIN70N, dayHand: IMAGES.HAND_SKIN70D, nightHand: IMAGES.HAND_SKIN70N, rarity: RARITY.REIDITE, author: "Taco4Life", name: "Mr. Garlic" }, { id: 76, day: IMAGES.SKIN51D, night: IMAGES.SKIN51N, dayHand: IMAGES.HAND_SKIN51D, nightHand: IMAGES.HAND_SKIN51N, rarity: RARITY.REIDITE, author: "Winter", name: "Robot Dragon" }, { id: 44, day: IMAGES.SKIN1D, night: IMAGES.SKIN1N, dayHand: IMAGES.HAND_SKIN1D, nightHand: IMAGES.HAND_SKIN1N, rarity: RARITY.REIDITE, author: "Winter", name: "Lava Dragon Version 1" }, { id: 90, day: IMAGES.SKIN65D, night: IMAGES.SKIN65N, dayHand: IMAGES.HAND_SKIN65D, nightHand: IMAGES.HAND_SKIN65N, rarity: RARITY.REIDITE, author: "ExpertyAnimations", name: "Lava Dragon Version 2" }, { id: 124, day: IMAGES.SKIN99D, night: IMAGES.SKIN99N, dayHand: IMAGES.HAND_SKIN99D, nightHand: IMAGES.HAND_SKIN99N, rarity: RARITY.REIDITE, author: "eogito", name: "Lava Dragon Version 3" }, { id: 45, day: IMAGES.SKIN12D, night: IMAGES.SKIN12N, dayHand: IMAGES.HAND_SKIN12D, nightHand: IMAGES.HAND_SKIN12N, rarity: RARITY.REIDITE, author: "Sushui", name: "Ice Dragon Version 1" }, { id: 46, day: IMAGES.SKIN13D, night: IMAGES.SKIN13N, dayHand: IMAGES.HAND_SKIN13D, nightHand: IMAGES.HAND_SKIN13N, rarity: RARITY.REIDITE, author: "Winter", name: "Ice Dragon Version 2" }, { id: 108, day: IMAGES.SKIN83D, night: IMAGES.SKIN83N, dayHand: IMAGES.HAND_SKIN83D, nightHand: IMAGES.HAND_SKIN83N, rarity: RARITY.REIDITE, author: "eogito", name: "Ice Dragon Version 3" }, { id: 123, day: IMAGES.SKIN98D, night: IMAGES.SKIN98N, dayHand: IMAGES.HAND_SKIN98D, nightHand: IMAGES.HAND_SKIN98N, rarity: RARITY.REIDITE, author: "eogito", name: "Baby Dragon Version 1" }, { id: 128, day: IMAGES.SKIN103D, night: IMAGES.SKIN103N, dayHand: IMAGES.HAND_SKIN103D, nightHand: IMAGES.HAND_SKIN103N, rarity: RARITY.REIDITE, author: "MADBalgouthi", name: "Baby Dragon Version 2" }, { id: 125, day: IMAGES.SKIN100D, night: IMAGES.SKIN100N, dayHand: IMAGES.HAND_SKIN100D, nightHand: IMAGES.HAND_SKIN100N, rarity: RARITY.REIDITE, author: "eogito", name: "Baby Lava" }, { id: 47, day: IMAGES.SKIN21D, night: IMAGES.SKIN21N, dayHand: IMAGES.HAND_SKIN21D, nightHand: IMAGES.HAND_SKIN21N, rarity: RARITY.REIDITE, author: "Taco4Life", name: "Kraken" }, { id: 129, day: IMAGES.SKIN104D, night: IMAGES.SKIN104N, dayHand: IMAGES.HAND_SKIN104D, nightHand: IMAGES.HAND_SKIN104N, rarity: RARITY.REIDITE, author: "Taco4Life", name: "Sandworm" }, { id: 63, day: IMAGES.SKIN38D, night: IMAGES.SKIN38N, dayHand: IMAGES.HAND_SKIN38D, nightHand: IMAGES.HAND_SKIN38N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Mr. Golden Bread" }, { id: 67, day: IMAGES.SKIN42D, night: IMAGES.SKIN42N, dayHand: IMAGES.HAND_SKIN42D, nightHand: IMAGES.HAND_SKIN42N, rarity: RARITY.REIDITE, author: "ForgottenHeroe", name: "Starver Ores" }, { id: 130, day: IMAGES.SKIN105D, night: IMAGES.SKIN105N, dayHand: IMAGES.HAND_SKIN105D, nightHand: IMAGES.HAND_SKIN105N, rarity: RARITY.REIDITE, author: "Taco4Life", name: "Poo" }, { id: 89, day: IMAGES.SKIN64D, night: IMAGES.SKIN64N, dayHand: IMAGES.HAND_SKIN64D, nightHand: IMAGES.HAND_SKIN64N, rarity: RARITY.REIDITE, author: "Poinet", name: "Volcano Starver" }, { id: 112, day: IMAGES.SKIN87D, night: IMAGES.SKIN87N, dayHand: IMAGES.HAND_SKIN87D, nightHand: IMAGES.HAND_SKIN87N, rarity: RARITY.REIDITE, author: "eogito", name: "Lava Starver" }, { id: 48, day: IMAGES.SKIN_ROBOTD, night: IMAGES.SKIN_ROBOTN, dayHand: IMAGES.HAND_ROBOTD, nightHand: IMAGES.HAND_ROBOTN, rarity: RARITY.SPECIAL, author: "eogito", name: "Robot" }, { id: 110, day: IMAGES.SKIN85D, night: IMAGES.SKIN85N, dayHand: IMAGES.HAND_SKIN85D, nightHand: IMAGES.HAND_SKIN85N, rarity: RARITY.SPECIAL, author: "pizza wa", name: "Blue Butterfly" }, { id: 157, day: IMAGES.SKIN133D, night: IMAGES.SKIN133N, dayHand: IMAGES.HAND_SKIN133D, nightHand: IMAGES.HAND_SKIN133N, rarity: RARITY.SPECIAL, author: "eogito", name: "Yrifox" }, { id: 165, day: IMAGES.SKIN141D, night: IMAGES.SKIN141N, dayHand: IMAGES.HAND_SKIN141D, nightHand: IMAGES.HAND_SKIN141N, rarity: RARITY.SPECIAL, author: "OmarJr13", name: "Blob Skin" } ], BAG: [ { id: 0, day: IMAGES.BAGD, night: IMAGES.BAGN, rarity: RARITY.FREE, author: "Starve.io", name: "Bag 1" }, { id: 1, day: IMAGES.BAG0D, night: IMAGES.BAG0N, rarity: RARITY.FREE, author: "Starve.io", name: "Old Bag" }, { id: 2, day: IMAGES.BAG4D, night: IMAGES.BAG4N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bag 2" }, { id: 3, day: IMAGES.BAG5D, night: IMAGES.BAG5N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bag 3" }, { id: 4, day: IMAGES.BAG6D, night: IMAGES.BAG6N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bag 4" }, { id: 5, day: IMAGES.BAG7D, night: IMAGES.BAG7N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bag 5" }, { id: 11, day: IMAGES.BAG23D, night: IMAGES.BAG23N, rarity: RARITY.WOOD, author: "eogito", name: "Wood Pickaxe Bag" }, { id: 19, day: IMAGES.BAG16D, night: IMAGES.BAG16N, rarity: RARITY.WOOD, author: "Starve.io ", name: "Wood Carrier" }, { id: 37, day: IMAGES.BAG36D, night: IMAGES.BAG36N, rarity: RARITY.WOOD, author: "eogito", name: "Bag 6" }, { id: 39, day: IMAGES.BAG38D, night: IMAGES.BAG38N, rarity: RARITY.WOOD, author: "eogito", name: "Bag with Wooden Swords" }, { id: 44, day: IMAGES.BAG43D, night: IMAGES.BAG43N, rarity: RARITY.WOOD, author: "Communist", name: "Big Bag" }, { id: 7, day: IMAGES.BAG14D, night: IMAGES.BAG14N, rarity: RARITY.STONE, author: "Communist", name: "Bag 6" }, { id: 8, day: IMAGES.BAG_EASTERD, night: IMAGES.BAG_EASTERN, rarity: RARITY.STONE, author: "Starve.io", name: "Easter Bag" }, { id: 9, day: IMAGES.BAG_STARD, night: IMAGES.BAG_STARN, rarity: RARITY.STONE, author: "pizza wa", name: "Star Bag" }, { id: 10, day: IMAGES.BAG9D, night: IMAGES.BAG9N, rarity: RARITY.STONE, author: "eogito", name: "Winter Bag" }, { id: 20, day: IMAGES.BAG17D, night: IMAGES.BAG17N, rarity: RARITY.STONE, author: "Starve.io ", name: "Stone Carrier" }, { id: 24, day: IMAGES.BAG24D, night: IMAGES.BAG24N, rarity: RARITY.STONE, author: "eogito", name: "Stone Pickaxe Bag" }, { id: 6, day: IMAGES.BAG13D, night: IMAGES.BAG13N, rarity: RARITY.STONE, author: "Communist", name: "Bag Camouflage" }, { id: 38, day: IMAGES.BAG37D, night: IMAGES.BAG37N, rarity: RARITY.STONE, author: "eogito", name: "Bag with Stone Swords" }, { id: 54, day: IMAGES.BAG53D, night: IMAGES.BAG53N, rarity: RARITY.STONE, author: "eogito", name: "Cow Bag" }, { id: 59, day: IMAGES.BAG58D, night: IMAGES.BAG58N, rarity: RARITY.STONE, author: "CrysTal", name: "Starver Bag" }, { id: 62, day: IMAGES.BAG61D, night: IMAGES.BAG61N, rarity: RARITY.STONE, author: "CrysTal", name: "Crystal Sky Bag" }, { id: 13, day: IMAGES.BAG10D, night: IMAGES.BAG10N, rarity: RARITY.GOLD, author: "pizza wa", name: "Honey Pot" }, { id: 21, day: IMAGES.BAG18D, night: IMAGES.BAG18N, rarity: RARITY.GOLD, author: "Starve.io ", name: "Gold Carrier" }, { id: 30, day: IMAGES.BAG25D, night: IMAGES.BAG25N, rarity: RARITY.GOLD, author: "eogito", name: "Gold Pickaxe Bag" }, { id: 29, day: IMAGES.BAG31D, night: IMAGES.BAG31N, rarity: RARITY.GOLD, author: "Ariel", name: "Mr and Mrs Bakers" }, { id: 41, day: IMAGES.BAG40D, night: IMAGES.BAG40N, rarity: RARITY.GOLD, author: "eogito", name: "Bag with Golden Swords" }, { id: 47, day: IMAGES.BAG46D, night: IMAGES.BAG46N, rarity: RARITY.GOLD, author: "eogito", name: "Explorer Bag" }, { id: 51, day: IMAGES.BAG50D, night: IMAGES.BAG50N, rarity: RARITY.GOLD, author: "pizza wa", name: "Bamboo Bag" }, { id: 53, day: IMAGES.BAG52D, night: IMAGES.BAG52N, rarity: RARITY.GOLD, author: "eogito", name: "Mummy Bag" }, { id: 58, day: IMAGES.BAG57D, night: IMAGES.BAG57N, rarity: RARITY.GOLD, author: "MADBalgouthi", name: "Watermelon Bag" }, { id: 60, day: IMAGES.BAG59D, night: IMAGES.BAG60N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Garlic Bag" }, { id: 61, day: IMAGES.BAG60D, night: IMAGES.BAG59N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Pumpkin Bag" }, { id: 64, day: IMAGES.BAG63D, night: IMAGES.BAG63N, rarity: RARITY.GOLD, author: "upfiz", name: "Oil Barel bag" }, { id: 67, day: IMAGES.BAG68D, night: IMAGES.BAG68N, rarity: RARITY.GOLD, author: "pizza wa", name: "Tree Bag" }, { id: 14, day: IMAGES.BAG1D, night: IMAGES.BAG1N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "a Rabbit in my Bag" }, { id: 15, day: IMAGES.BAG2D, night: IMAGES.BAG2N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Bird's nest" }, { id: 16, day: IMAGES.BAG3D, night: IMAGES.BAG3N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "a Fish on your Back" }, { id: 17, day: IMAGES.BAG8D, night: IMAGES.BAG8N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "a Squirrel in my Bag" }, { id: 22, day: IMAGES.BAG19D, night: IMAGES.BAG19N, rarity: RARITY.DIAMOND, author: "Starve.io ", name: "Diamond Carrier" }, { id: 12, day: IMAGES.BAG22D, night: IMAGES.BAG22N, rarity: RARITY.DIAMOND, author: "eogito", name: "Resources Bag" }, { id: 32, day: IMAGES.BAG26D, night: IMAGES.BAG26N, rarity: RARITY.DIAMOND, author: "eogito", name: "Diamond Pickaxe Bag" }, { id: 40, day: IMAGES.BAG39D, night: IMAGES.BAG39N, rarity: RARITY.DIAMOND, author: "eogito", name: "Bag with Diamond Swords" }, { id: 45, day: IMAGES.BAG44D, night: IMAGES.BAG44N, rarity: RARITY.DIAMOND, author: "eogito", name: "My Cake Bag" }, { id: 46, day: IMAGES.BAG45D, night: IMAGES.BAG45N, rarity: RARITY.DIAMOND, author: "eogito", name: "My Christmas Cake Bag" }, { id: 52, day: IMAGES.BAG51D, night: IMAGES.BAG51N, rarity: RARITY.DIAMOND, author: "MADBalgouthi", name: "Fish Bag" }, { id: 65, day: IMAGES.BAG64D, night: IMAGES.BAG64N, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Cloud Bag" }, { id: 68, day: IMAGES.BAG66D, night: IMAGES.BAG66N, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Bee Bag" }, { id: 48, day: IMAGES.BAG47D, night: IMAGES.BAG47N, rarity: RARITY.AMETHYST, author: "fatant", name: "Natural Bag" }, { id: 23, day: IMAGES.BAG20D, night: IMAGES.BAG20N, rarity: RARITY.AMETHYST, author: "Starve.io ", name: "Amethyst Carrier" }, { id: 25, day: IMAGES.BAG27D, night: IMAGES.BAG27N, rarity: RARITY.AMETHYST, author: "eogito", name: "Amethyst Pickaxe Bag" }, { id: 28, day: IMAGES.BAG30D, night: IMAGES.BAG30N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Your Baby" }, { id: 33, day: IMAGES.BAG32D, night: IMAGES.BAG32N, rarity: RARITY.AMETHYST, author: "pizza wa", name: "Tropical Bag" }, { id: 43, day: IMAGES.BAG42D, night: IMAGES.BAG42N, rarity: RARITY.AMETHYST, author: "eogito", name: "Bag with Amethyst Swords" }, { id: 35, day: IMAGES.BAG34D, night: IMAGES.BAG34N, rarity: RARITY.AMETHYST, author: "eogito", name: "Ice Bag" }, { id: 50, day: IMAGES.BAG49D, night: IMAGES.BAG49N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Thornbush Bag" }, { id: 56, day: IMAGES.BAG55D, night: IMAGES.BAG55N, rarity: RARITY.AMETHYST, author: "eogito", name: "Autumn Bag" }, { id: 57, day: IMAGES.BAG56D, night: IMAGES.BAG56N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Dino Egg Bag" }, { id: 66, day: IMAGES.BAG65D, night: IMAGES.BAG65N, rarity: RARITY.AMETHYST, author: "pizza wa", name: "Magic Cloud Bag" }, { id: 69, day: IMAGES.BAG67D, night: IMAGES.BAG67N, rarity: RARITY.AMETHYST, author: "pizza wa", name: "Chest Bag" }, { id: 31, day: IMAGES.BAG21D, night: IMAGES.BAG21N, rarity: RARITY.REIDITE, author: "Starve.io ", name: "Reidite Carrier" }, { id: 18, day: IMAGES.BAG11D, night: IMAGES.BAG11N, rarity: RARITY.REIDITE, author: "Winter", name: "Lava Bag" }, { id: 49, day: IMAGES.BAG48D, night: IMAGES.BAG48N, rarity: RARITY.REIDITE, author: "eogito", name: "Lava Bag 2" }, { id: 36, day: IMAGES.BAG35D, night: IMAGES.BAG35N, rarity: RARITY.REIDITE, author: "eogito", name: "Dragon Bag" }, { id: 55, day: IMAGES.BAG54D, night: IMAGES.BAG54N, rarity: RARITY.REIDITE, author: "eogito", name: "Winter Ice Bag" }, { id: 26, day: IMAGES.BAG28D, night: IMAGES.BAG28N, rarity: RARITY.REIDITE, author: "eogito", name: "Reidite Pickaxe Bag" }, { id: 27, day: IMAGES.BAG29D, night: IMAGES.BAG29N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Octopus Bowl" }, { id: 34, day: IMAGES.BAG33D, night: IMAGES.BAG33N, rarity: RARITY.REIDITE, author: "Taco4Life", name: "Cave Bag" }, { id: 42, day: IMAGES.BAG41D, night: IMAGES.BAG41N, rarity: RARITY.REIDITE, author: "eogito", name: "Bag with Reidite Swords" }, { id: 63, day: IMAGES.BAG62D, night: IMAGES.BAG62N, rarity: RARITY.REIDITE, author: "eogito", name: "Engineer Bag" } ], CRATE: [ { id: 0, day: IMAGES.CRATE7D, night: IMAGES.CRATE7N, rarity: RARITY.FREE, author: "eogito", name: "Wooden Dead Box" }, { id: 1, day: IMAGES.CRATE6D, night: IMAGES.CRATE6N, rarity: RARITY.FREE, author: "eogito", name: "Hidden item" }, { id: 2, day: IMAGES.CRATE1D, night: IMAGES.CRATE1N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box 1" }, { id: 3, day: IMAGES.CRATE2D, night: IMAGES.CRATE2N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box 2" }, { id: 4, day: IMAGES.CRATE3D, night: IMAGES.CRATE3N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box 3" }, { id: 5, day: IMAGES.CRATE4D, night: IMAGES.CRATE4N, rarity: RARITY.WOOD, author: "eogito", name: "Broken Wooden Box" }, { id: 6, day: IMAGES.CRATE5D, night: IMAGES.CRATE5N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box" }, { id: 7, day: IMAGES.CRATE8D, night: IMAGES.CRATE8N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Battle Box" }, { id: 8, day: IMAGES.CRATE9D, night: IMAGES.CRATE9N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box with a Cross" }, { id: 9, day: IMAGES.CRATE10D, night: IMAGES.CRATE10N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box with Bubbles" }, { id: 10, day: IMAGES.CRATE11D, night: IMAGES.CRATE11N, rarity: RARITY.WOOD, author: "eogito", name: "Wooden Box with Eyes" }, { id: 11, day: IMAGES.CRATE12D, night: IMAGES.CRATE12N, rarity: RARITY.WOOD, author: "eogito", name: "Dark Wooden Box" }, { id: 38, day: IMAGES.CRATE39D, night: IMAGES.CRATE39N, rarity: RARITY.WOOD, author: "Weddlz", name: "Noob Box" }, { id: 12, day: IMAGES.CRATE13D, night: IMAGES.CRATE13N, rarity: RARITY.STONE, author: "eogito", name: "Wooden and Stone Box" }, { id: 14, day: IMAGES.CRATE19D, night: IMAGES.CRATE19N, rarity: RARITY.STONE, author: "pizza wa", name: "Star Box 1" }, { id: 15, day: IMAGES.CRATE20D, night: IMAGES.CRATE20N, rarity: RARITY.STONE, author: "pizza wa", name: "Star Box 2" }, { id: 27, day: IMAGES.CRATE29D, night: IMAGES.CRATE29N, rarity: RARITY.STONE, author: "eogito", name: "Flower Box" }, { id: 46, day: IMAGES.CRATE47D, night: IMAGES.CRATE47N, rarity: RARITY.STONE, author: "MADBalgouthi", name: "Blue Box" }, { id: 19, day: IMAGES.CRATE21D, night: IMAGES.CRATE21N, rarity: RARITY.GOLD, author: "Starve.io", name: "Beehive" }, { id: 13, day: IMAGES.CRATE14D, night: IMAGES.CRATE14N, rarity: RARITY.GOLD, author: "eogito", name: "Wooden and Golden Box" }, { id: 21, day: IMAGES.CRATE22D, night: IMAGES.CRATE22N, rarity: RARITY.GOLD, author: "Starve.io", name: "Gravestone" }, { id: 25, day: IMAGES.CRATE26D, night: IMAGES.CRATE26N, rarity: RARITY.GOLD, author: "Communist", name: "Sky Box" }, { id: 29, day: IMAGES.CRATE30D, night: IMAGES.CRATE30N, rarity: RARITY.GOLD, author: "Winter", name: "Golden Box" }, { id: 34, day: IMAGES.CRATE35D, night: IMAGES.CRATE35N, rarity: RARITY.GOLD, author: "Communist", name: "Water Crate" }, { id: 35, day: IMAGES.CRATE36D, night: IMAGES.CRATE36N, rarity: RARITY.GOLD, author: "Communist", name: "Glass Crate" }, { id: 16, day: IMAGES.CRATE15D, night: IMAGES.CRATE15N, rarity: RARITY.DIAMOND, author: "eogito", name: "Wooden and Diamond Box" }, { id: 18, day: IMAGES.CRATE18D, night: IMAGES.CRATE18N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Don't Hit Me" }, { id: 26, day: IMAGES.CRATE27D, night: IMAGES.CRATE27N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Underwater Box" }, { id: 31, day: IMAGES.CRATE32D, night: IMAGES.CRATE32N, rarity: RARITY.DIAMOND, author: "Communist", name: "Items Pile" }, { id: 32, day: IMAGES.CRATE33D, night: IMAGES.CRATE33N, rarity: RARITY.DIAMOND, author: "eogito", name: "Cake Box" }, { id: 33, day: IMAGES.CRATE34D, night: IMAGES.CRATE34N, rarity: RARITY.DIAMOND, author: "eogito", name: "Christmas Cake Box" }, { id: 36, day: IMAGES.CRATE37D, night: IMAGES.CRATE37N, rarity: RARITY.DIAMOND, author: "Fukss", name: "Crab Box" }, { id: 42, day: IMAGES.CRATE43D, night: IMAGES.CRATE43N, rarity: RARITY.DIAMOND, author: "MADBalgouthi", name: "Fishing Box" }, { id: 22, day: IMAGES.CRATE23D, night: IMAGES.CRATE23N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Let me out of here" }, { id: 17, day: IMAGES.CRATE16D, night: IMAGES.CRATE16N, rarity: RARITY.AMETHYST, author: "eogito", name: "Wooden and Amethyst Box" }, { id: 24, day: IMAGES.CRATE25D, night: IMAGES.CRATE25N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Aquarium" }, { id: 28, day: IMAGES.CRATE28D, night: IMAGES.CRATE28N, rarity: RARITY.AMETHYST, author: "eogito", name: "Gift Box" }, { id: 40, day: IMAGES.CRATE41D, night: IMAGES.CRATE41N, rarity: RARITY.AMETHYST, author: "MADBalgouthi", name: "Open Watermelon Box" }, { id: 41, day: IMAGES.CRATE42D, night: IMAGES.CRATE42N, rarity: RARITY.AMETHYST, author: "MADBalgouthi", name: "Watermelon Box" }, { id: 39, day: IMAGES.CRATE40D, night: IMAGES.CRATE40N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Thornbush Box" }, { id: 43, day: IMAGES.CRATE44D, night: IMAGES.CRATE44N, rarity: RARITY.AMETHYST, author: "eogito", name: "Rabbit in the Box" }, { id: 47, day: IMAGES.CRATE48D, night: IMAGES.CRATE48N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Garlic Plot" }, { id: 48, day: IMAGES.CRATE49D, night: IMAGES.CRATE49N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Pumpkin Plot" }, { id: 45, day: IMAGES.CRATE46D, night: IMAGES.CRATE46N, rarity: RARITY.REIDITE, author: "eogito", name: "Autumn Box" }, { id: 44, day: IMAGES.CRATE45D, night: IMAGES.CRATE45N, rarity: RARITY.REIDITE, author: "eogito", name: "Winter Box" }, { id: 20, day: IMAGES.CRATE17D, night: IMAGES.CRATE17N, rarity: RARITY.REIDITE, author: "eogito", name: "Metal and Reidite Box" }, { id: 23, day: IMAGES.CRATE24D, night: IMAGES.CRATE24N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Kraken Box" }, { id: 30, day: IMAGES.CRATE31D, night: IMAGES.CRATE31N, rarity: RARITY.REIDITE, author: "Winter", name: "Lava Box" }, { id: 37, day: IMAGES.CRATE38D, night: IMAGES.CRATE38N, rarity: RARITY.REIDITE, author: "eogito", name: "Lava Box 2" }, { id: 49, day: IMAGES.CRATE50D, night: IMAGES.CRATE50N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Rabbit" }, { id: 50, day: IMAGES.CRATE51D, night: IMAGES.CRATE51N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Wolf" }, { id: 51, day: IMAGES.CRATE52D, night: IMAGES.CRATE52N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Spider" }, { id: 52, day: IMAGES.CRATE53D, night: IMAGES.CRATE53N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Hawk" }, { id: 53, day: IMAGES.CRATE54D, night: IMAGES.CRATE54N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Bear" }, { id: 54, day: IMAGES.CRATE55D, night: IMAGES.CRATE55N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Fox" }, { id: 55, day: IMAGES.CRATE56D, night: IMAGES.CRATE56N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Baby Mammoth" }, { id: 56, day: IMAGES.CRATE57D, night: IMAGES.CRATE57N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Mammoth" }, { id: 57, day: IMAGES.CRATE58D, night: IMAGES.CRATE58N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Sandworm" }, { id: 58, day: IMAGES.CRATE59D, night: IMAGES.CRATE59N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Vulture" }, { id: 59, day: IMAGES.CRATE60D, night: IMAGES.CRATE60N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Kraken" }, { id: 60, day: IMAGES.CRATE61D, night: IMAGES.CRATE61N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Piranha" }, { id: 61, day: IMAGES.CRATE62D, night: IMAGES.CRATE62N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Baby Dragon" }, { id: 62, day: IMAGES.CRATE63D, night: IMAGES.CRATE63N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Baby Lava" }, { id: 63, day: IMAGES.CRATE64D, night: IMAGES.CRATE64N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Dragon" }, { id: 64, day: IMAGES.CRATE65D, night: IMAGES.CRATE65N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Penguin" }, { id: 65, day: IMAGES.CRATE66D, night: IMAGES.CRATE66N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Lava Dragon" }, { id: 66, day: IMAGES.CRATE67D, night: IMAGES.CRATE67N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Boar" }, { id: 67, day: IMAGES.CRATE68D, night: IMAGES.CRATE68N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Fire mob" }, { id: 68, day: IMAGES.CRATE69D, night: IMAGES.CRATE69N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the Crab" }, { id: 69, day: IMAGES.CRATE70D, night: IMAGES.CRATE70N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Box of the King Crab" }, { id: 70, day: IMAGES.CRATE71D, night: IMAGES.CRATE71N, rarity: RARITY.GOLD, author: "CrysTal", name: "Crystal Sky Box" }, { id: 71, day: IMAGES.CRATE72D, night: IMAGES.CRATE72N, rarity: RARITY.REIDITE, author: "eogito", name: "Dragon Box" } ], BOOK: [ { id: 0, day: IMAGES.BOOK0D, night: IMAGES.BOOK0N, rarity: RARITY.FREE, author: "Starve.io", name: "Book 1" }, { id: 1, day: IMAGES.BOOK3D, night: IMAGES.BOOK3N, rarity: RARITY.WOOD, author: "eogito", name: "Book 2" }, { id: 2, day: IMAGES.BOOK4D, night: IMAGES.BOOK4N, rarity: RARITY.WOOD, author: "eogito", name: "Book 3" }, { id: 3, day: IMAGES.BOOK5D, night: IMAGES.BOOK5N, rarity: RARITY.WOOD, author: "eogito", name: "Book 4" }, { id: 4, day: IMAGES.BOOK6D, night: IMAGES.BOOK6N, rarity: RARITY.WOOD, author: "eogito", name: "Damaged Book 1" }, { id: 18, day: IMAGES.BOOK18D, night: IMAGES.BOOK18N, rarity: RARITY.WOOD, author: "SeveR", name: "Damaged Book 2" }, { id: 5, day: IMAGES.BOOK1D, night: IMAGES.BOOK1N, rarity: RARITY.STONE, author: "Doctorpus", name: "Scroll" }, { id: 6, day: IMAGES.BOOK2D, night: IMAGES.BOOK2N, rarity: RARITY.STONE, author: "Doctorpus", name: "Clipboard" }, { id: 7, day: IMAGES.BOOK7D, night: IMAGES.BOOK7N, rarity: RARITY.STONE, author: "eogito", name: "Seed Book" }, { id: 20, day: IMAGES.BOOK20D, night: IMAGES.BOOK20N, rarity: RARITY.STONE, author: "Taco4Life", name: "Camo Book" }, { id: 24, day: IMAGES.BOOK24D, night: IMAGES.BOOK24N, rarity: RARITY.STONE, author: "Communist", name: "Stone Tablet" }, { id: 10, day: IMAGES.BOOK13D, night: IMAGES.BOOK13N, rarity: RARITY.GOLD, author: "pizza wa", name: "Star Book" }, { id: 8, day: IMAGES.BOOK9D, night: IMAGES.BOOK9N, rarity: RARITY.GOLD, author: "eogito", name: "Gold Book" }, { id: 15, day: IMAGES.BOOK15D, night: IMAGES.BOOK15N, rarity: RARITY.GOLD, author: "Starve.io", name: "Old Mysterious Paper" }, { id: 17, day: IMAGES.BOOK17D, night: IMAGES.BOOK17N, rarity: RARITY.GOLD, author: "Starve.io", name: "Gold Engraving" }, { id: 25, day: IMAGES.BOOK25D, night: IMAGES.BOOK25N, rarity: RARITY.GOLD, author: "fatant", name: "Ant Book" }, { id: 32, day: IMAGES.BOOK32D, night: IMAGES.BOOK32N, rarity: RARITY.GOLD, author: "eogito", name: "Mummy Book" }, { id: 37, day: IMAGES.BOOK39D, night: IMAGES.BOOK39N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Garlic Book" }, { id: 38, day: IMAGES.BOOK38D, night: IMAGES.BOOK38N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Pumpkin Book" }, { id: 39, day: IMAGES.BOOK40D, night: IMAGES.BOOK40N, rarity: RARITY.GOLD, author: "Starve.io", name: "Christmas Tree Book" }, { id: 11, day: IMAGES.BOOK10D, night: IMAGES.BOOK10N, rarity: RARITY.DIAMOND, author: "eogito", name: "Diamond Book" }, { id: 9, day: IMAGES.BOOK8D, night: IMAGES.BOOK8N, rarity: RARITY.DIAMOND, author: "eogito", name: "Obscure Book" }, { id: 16, day: IMAGES.BOOK16D, night: IMAGES.BOOK16N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Rolled Parchment" }, { id: 22, day: IMAGES.BOOK22D, night: IMAGES.BOOK22N, rarity: RARITY.DIAMOND, author: "eogito", name: "Cake Book" }, { id: 23, day: IMAGES.BOOK23D, night: IMAGES.BOOK23N, rarity: RARITY.DIAMOND, author: "eogito", name: "Christmas Cake Book" }, { id: 30, day: IMAGES.BOOK30D, night: IMAGES.BOOK30N, rarity: RARITY.DIAMOND, author: "MADBalgouthi", name: "Fish Book" }, { id: 31, day: IMAGES.BOOK31D, night: IMAGES.BOOK31N, rarity: RARITY.DIAMOND, author: "CrysTal", name: "Once upon a time" }, { id: 13, day: IMAGES.BOOK11D, night: IMAGES.BOOK11N, rarity: RARITY.AMETHYST, author: "eogito", name: "Amethyst Book" }, { id: 28, day: IMAGES.BOOK28D, night: IMAGES.BOOK28N, rarity: RARITY.AMETHYST, author: "eogito", name: "Paint Pallet" }, { id: 29, day: IMAGES.BOOK29D, night: IMAGES.BOOK29N, rarity: RARITY.AMETHYST, author: "CrysTal", name: "Watermelon Book" }, { id: 27, day: IMAGES.BOOK27D, night: IMAGES.BOOK27N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Thornbush Book" }, { id: 35, day: IMAGES.BOOK35D, night: IMAGES.BOOK35N, rarity: RARITY.AMETHYST, author: "Taco4Life", name: "Menu" }, { id: 36, day: IMAGES.BOOK36D, night: IMAGES.BOOK36N, rarity: RARITY.AMETHYST, author: "CrysTal", name: "Lover Letter" }, { id: 40, day: IMAGES.BOOK41D, night: IMAGES.BOOK41N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Fresh-Baked Cookies" }, { id: 41, day: IMAGES.BOOK42D, night: IMAGES.BOOK42N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Inside, there is just a book." }, { id: 33, day: IMAGES.BOOK33D, night: IMAGES.BOOK33N, rarity: RARITY.REIDITE, author: "eogito", name: "Winter Book" }, { id: 34, day: IMAGES.BOOK34D, night: IMAGES.BOOK34N, rarity: RARITY.REIDITE, author: "eogito", name: "Autumn Book" }, { id: 14, day: IMAGES.BOOK12D, night: IMAGES.BOOK12N, rarity: RARITY.REIDITE, author: "eogito", name: "Reidite Book" }, { id: 12, day: IMAGES.BOOK14D, night: IMAGES.BOOK14N, rarity: RARITY.REIDITE, author: "Winter", name: "Lava Book" }, { id: 26, day: IMAGES.BOOK26D, night: IMAGES.BOOK26N, rarity: RARITY.REIDITE, author: "eogito", name: "Lava Book 2" }, { id: 19, day: IMAGES.BOOK19D, night: IMAGES.BOOK19N, rarity: RARITY.REIDITE, author: "Winter", name: "Ocean Mystery" }, { id: 21, day: IMAGES.BOOK21D, night: IMAGES.BOOK21N, rarity: RARITY.REIDITE, author: "eogito", name: "Dragon Book" }, { id: 42, day: IMAGES.BOOK43D, night: IMAGES.BOOK43N, rarity: RARITY.REIDITE, author: "eogito", name: "Engineer Book" }, { id: 43, day: IMAGES.BOOK44D, night: IMAGES.BOOK44N, rarity: RARITY.REIDITE, author: "eogito", name: "Nightmare Book" }, { id: 44, day: IMAGES.BOOK45D, night: IMAGES.BOOK45N, rarity: RARITY.REIDITE, author: "aloner", name: "Mystery Book" } ], ACCESSORY: [ { id: 0, day: IMAGES.ACCESSORY0D, night: IMAGES.ACCESSORY0D, rarity: RARITY.FREE, author: "Starve.io", name: "Nothing" }, { id: 2, day: IMAGES.ACCESSORY4D, night: IMAGES.ACCESSORY4N, rarity: RARITY.FREE, author: "Starve.io", name: "Pink Cheeks" }, { id: 3, day: IMAGES.ACCESSORY5D, night: IMAGES.ACCESSORY5N, rarity: RARITY.FREE, author: "Starve.io", name: "Heart" }, { id: 1, day: IMAGES.ACCESSORY3D, night: IMAGES.ACCESSORY3N, rarity: RARITY.FREE, author: "Starve.io", name: "Bandage 1" }, { id: 4, day: IMAGES.ACCESSORY6D, night: IMAGES.ACCESSORY6N, rarity: RARITY.FREE, author: "Starve.io", name: "Flower 1" }, { id: 5, day: IMAGES.ACCESSORY8D, night: IMAGES.ACCESSORY8N, rarity: RARITY.WOOD, author: "Starve.io", name: "Bow 1" }, { id: 6, day: IMAGES.ACCESSORY9D, night: IMAGES.ACCESSORY9N, rarity: RARITY.WOOD, author: "eogito", name: "Bandage 2" }, { id: 7, day: IMAGES.ACCESSORY15D, night: IMAGES.ACCESSORY15N, rarity: RARITY.WOOD, author: "Starve.io", name: "Flower 2" }, { id: 8, day: IMAGES.ACCESSORY10D, night: IMAGES.ACCESSORY10N, rarity: RARITY.WOOD, author: "eogito", name: "Bandage 3" }, { id: 36, day: IMAGES.ACCESSORY36D, night: IMAGES.ACCESSORY36N, rarity: RARITY.WOOD, author: "eogito", name: "Foliage" }, { id: 59, day: IMAGES.ACCESSORY47D, night: IMAGES.ACCESSORY47N, rarity: RARITY.WOOD, author: "eogito", name: "Peaceful" }, { id: 67, day: IMAGES.ACCESSORY55D, night: IMAGES.ACCESSORY55N, rarity: RARITY.WOOD, author: "pizza wa", name: "Sparkles" }, { id: 68, day: IMAGES.ACCESSORY56D, night: IMAGES.ACCESSORY56N, rarity: RARITY.WOOD, author: "pizza wa", name: "Luxury" }, { id: 69, day: IMAGES.ACCESSORY57D, night: IMAGES.ACCESSORY57N, rarity: RARITY.WOOD, author: "pizza wa", name: "Snow Flakes Crown" }, { id: 17, day: IMAGES.ACCESSORY17D, night: IMAGES.ACCESSORY17N, rarity: RARITY.STONE, author: "Starve.io", name: "Glasses 1" }, { id: 10, day: IMAGES.ACCESSORY7D, night: IMAGES.ACCESSORY7N, rarity: RARITY.STONE, author: "Starve.io", name: "Bow 2" }, { id: 11, day: IMAGES.ACCESSORY13D, night: IMAGES.ACCESSORY13N, rarity: RARITY.STONE, author: "pizza wa", name: "Little Stars" }, { id: 12, day: IMAGES.ACCESSORY11D, night: IMAGES.ACCESSORY11N, rarity: RARITY.STONE, author: "eogito", name: "Pirate Eye Patch 1" }, { id: 44, day: IMAGES.ACCESSORY44D, night: IMAGES.ACCESSORY44N, rarity: RARITY.STONE, author: "Taco4Life", name: "Pirate Eye Patch 2" }, { id: 23, day: IMAGES.ACCESSORY23D, night: IMAGES.ACCESSORY23N, rarity: RARITY.STONE, author: "Starve.io", name: "Clown nose" }, { id: 16, day: IMAGES.ACCESSORY2D, night: IMAGES.ACCESSORY2N, rarity: RARITY.STONE, author: "Starve.io", name: "Eye Patch" }, { id: 30, day: IMAGES.ACCESSORY30D, night: IMAGES.ACCESSORY30N, rarity: RARITY.STONE, author: "eogito", name: "Flower 3" }, { id: 38, day: IMAGES.ACCESSORY38D, night: IMAGES.ACCESSORY38N, rarity: RARITY.STONE, author: "Winter", name: "False Nose" }, { id: 74, day: IMAGES.ACCESSORY62D, night: IMAGES.ACCESSORY62N, rarity: RARITY.STONE, author: "Starve.io", name: "Red Cloth" }, { id: 75, day: IMAGES.ACCESSORY63D, night: IMAGES.ACCESSORY63N, rarity: RARITY.STONE, author: "Starve.io", name: "Blue Cloth" }, { id: 79, day: IMAGES.ACCESSORY67D, night: IMAGES.ACCESSORY67N, rarity: RARITY.STONE, author: "Starve.io", name: "Transparent Mask" }, { id: 89, day: IMAGES.ACCESSORY77D, night: IMAGES.ACCESSORY77N, rarity: RARITY.STONE, author: "Anyone want to play?", name: "Starve.io Anime" }, { id: 94, day: IMAGES.ACCESSORY78D, night: IMAGES.ACCESSORY78N, rarity: RARITY.STONE, author: "Ant", name: "Hero Mask" }, { id: 15, day: IMAGES.ACCESSORY16D, night: IMAGES.ACCESSORY16N, rarity: RARITY.GOLD, author: "Starve.io", name: "Star Glasses" }, { id: 21, day: IMAGES.ACCESSORY21D, night: IMAGES.ACCESSORY21N, rarity: RARITY.GOLD, author: "Starve.io", name: "Great-aunt's Glasses" }, { id: 24, day: IMAGES.ACCESSORY24D, night: IMAGES.ACCESSORY24N, rarity: RARITY.GOLD, author: "Starve.io", name: "Little Starver" }, { id: 22, day: IMAGES.ACCESSORY22D, night: IMAGES.ACCESSORY22N, rarity: RARITY.GOLD, author: "Starve.io", name: "Little Glasses" }, { id: 13, day: IMAGES.ACCESSORY14D, night: IMAGES.ACCESSORY14N, rarity: RARITY.GOLD, author: "Starve.io", name: "Flower Chain" }, { id: 29, day: IMAGES.ACCESSORY29D, night: IMAGES.ACCESSORY29N, rarity: RARITY.GOLD, author: "eogito", name: "Horns" }, { id: 31, day: IMAGES.ACCESSORY31D, night: IMAGES.ACCESSORY31N, rarity: RARITY.GOLD, author: "eogito", name: "Golden Flower" }, { id: 40, day: IMAGES.ACCESSORY40D, night: IMAGES.ACCESSORY40N, rarity: RARITY.GOLD, author: "pizza wa", name: "Sleeping Mask" }, { id: 57, day: IMAGES.ACCESSORY50D, night: IMAGES.ACCESSORY50N, rarity: RARITY.GOLD, author: "Taco4Life", name: "Fish on your head" }, { id: 58, day: IMAGES.ACCESSORY46D, night: IMAGES.ACCESSORY46N, rarity: RARITY.GOLD, author: "eogito", name: "Rose" }, { id: 91, day: IMAGES.ACCESSORY80D, night: IMAGES.ACCESSORY80N, rarity: RARITY.GOLD, author: "upfiz", name: "Grey Scarf" }, { id: 92, day: IMAGES.ACCESSORY81D, night: IMAGES.ACCESSORY81N, rarity: RARITY.GOLD, author: "upfiz", name: "Black Scarf" }, { id: 93, day: IMAGES.ACCESSORY82D, night: IMAGES.ACCESSORY82N, rarity: RARITY.GOLD, author: "upfiz", name: "Skull Mask" }, { id: 9, day: IMAGES.ACCESSORY1D, night: IMAGES.ACCESSORY1N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Fancy Glasses" }, { id: 25, day: IMAGES.ACCESSORY25D, night: IMAGES.ACCESSORY25N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Medecin Mask" }, { id: 14, day: IMAGES.ACCESSORY12D, night: IMAGES.ACCESSORY12N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mr. Mayor" }, { id: 19, day: IMAGES.ACCESSORY19D, night: IMAGES.ACCESSORY19N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Sunglasses 2" }, { id: 28, day: IMAGES.ACCESSORY28D, night: IMAGES.ACCESSORY28N, rarity: RARITY.DIAMOND, author: "pizza wa", name: "Starfish" }, { id: 37, day: IMAGES.ACCESSORY37D, night: IMAGES.ACCESSORY37N, rarity: RARITY.DIAMOND, author: "eogito", name: "Berry" }, { id: 39, day: IMAGES.ACCESSORY39D, night: IMAGES.ACCESSORY39N, rarity: RARITY.DIAMOND, author: "eogito", name: "Flake" }, { id: 43, day: IMAGES.ACCESSORY43D, night: IMAGES.ACCESSORY43N, rarity: RARITY.DIAMOND, author: "eogito", name: "Leaf " }, { id: 61, day: IMAGES.ACCESSORY49D, night: IMAGES.ACCESSORY49N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "A sword in your head" }, { id: 62, day: IMAGES.ACCESSORY51D, night: IMAGES.ACCESSORY51N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Winter Scarf" }, { id: 64, day: IMAGES.ACCESSORY53D, night: IMAGES.ACCESSORY53N, rarity: RARITY.DIAMOND, author: "eogito", name: "Winter Scarf 2" }, { id: 66, day: IMAGES.ACCESSORY54D, night: IMAGES.ACCESSORY54N, rarity: RARITY.DIAMOND, author: "eogito", name: "Winter Scarf 3" }, { id: 70, day: IMAGES.ACCESSORY58D, night: IMAGES.ACCESSORY58N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Mask with animal tracks" }, { id: 71, day: IMAGES.ACCESSORY59D, night: IMAGES.ACCESSORY59N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Spring Mask" }, { id: 72, day: IMAGES.ACCESSORY60D, night: IMAGES.ACCESSORY60N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Pink Mask" }, { id: 73, day: IMAGES.ACCESSORY61D, night: IMAGES.ACCESSORY61N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Blue Mask" }, { id: 76, day: IMAGES.ACCESSORY64D, night: IMAGES.ACCESSORY64N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Military Mask" }, { id: 77, day: IMAGES.ACCESSORY65D, night: IMAGES.ACCESSORY65N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Orange Mask" }, { id: 78, day: IMAGES.ACCESSORY66D, night: IMAGES.ACCESSORY66N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "White and Red Points Mask" }, { id: 80, day: IMAGES.ACCESSORY68D, night: IMAGES.ACCESSORY68N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Stick out your tongue Mask" }, { id: 81, day: IMAGES.ACCESSORY69D, night: IMAGES.ACCESSORY69N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Two Teeth Mask" }, { id: 82, day: IMAGES.ACCESSORY70D, night: IMAGES.ACCESSORY70N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Make-up Mask" }, { id: 83, day: IMAGES.ACCESSORY71D, night: IMAGES.ACCESSORY71N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Sad Mask" }, { id: 84, day: IMAGES.ACCESSORY72D, night: IMAGES.ACCESSORY72N, rarity: RARITY.DIAMOND, author: "Starve.io", name: "Happy Mask" }, { id: 90, day: IMAGES.ACCESSORY79D, night: IMAGES.ACCESSORY79N, rarity: RARITY.DIAMOND, author: "aloner", name: "Blood" }, { id: 27, day: IMAGES.ACCESSORY27D, night: IMAGES.ACCESSORY27N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Clown Face" }, { id: 20, day: IMAGES.ACCESSORY20D, night: IMAGES.ACCESSORY20N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Sunglasses 3" }, { id: 32, day: IMAGES.ACCESSORY32D, night: IMAGES.ACCESSORY32N, rarity: RARITY.AMETHYST, author: "eogito", name: "Engineer's Glasses" }, { id: 33, day: IMAGES.ACCESSORY33D, night: IMAGES.ACCESSORY33N, rarity: RARITY.AMETHYST, author: "eogito", name: "Engineer's Monocle" }, { id: 34, day: IMAGES.ACCESSORY34D, night: IMAGES.ACCESSORY34N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mauve's butt" }, { id: 41, day: IMAGES.ACCESSORY41D, night: IMAGES.ACCESSORY41N, rarity: RARITY.AMETHYST, author: "eogito", name: "Lapa Head" }, { id: 42, day: IMAGES.ACCESSORY42D, night: IMAGES.ACCESSORY42N, rarity: RARITY.AMETHYST, author: "eogito", name: "Lapa Head " }, { id: 85, day: IMAGES.ACCESSORY73D, night: IMAGES.ACCESSORY73N, rarity: RARITY.AMETHYST, author: "Starve.io", name: "Mask and Glasses" }, { id: 60, day: IMAGES.ACCESSORY48D, night: IMAGES.ACCESSORY48N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Jason" }, { id: 26, day: IMAGES.ACCESSORY26D, night: IMAGES.ACCESSORY26N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Devil Horns" }, { id: 18, day: IMAGES.ACCESSORY18D, night: IMAGES.ACCESSORY18N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Big Boss" }, { id: 35, day: IMAGES.ACCESSORY35D, night: IMAGES.ACCESSORY35N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Baby Kraken" }, { id: 63, day: IMAGES.ACCESSORY52D, night: IMAGES.ACCESSORY52N, rarity: RARITY.REIDITE, author: "eogito", name: "Deer Antlers" }, { id: 65, day: IMAGES.ACCESSORY45D, night: IMAGES.ACCESSORY45N, rarity: RARITY.REIDITE, author: "eogito", name: "Baby Dragon on your head" }, { id: 86, day: IMAGES.ACCESSORY74D, night: IMAGES.ACCESSORY74N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Gaz Mask and Glasses" }, { id: 87, day: IMAGES.ACCESSORY75D, night: IMAGES.ACCESSORY75N, rarity: RARITY.REIDITE, author: "Starve.io", name: "Pink Gaz Mask and Glasses" }, { id: 88, day: IMAGES.ACCESSORY76D, night: IMAGES.ACCESSORY76N, rarity: RARITY.REIDITE, author: "eogito", name: "Engineer Glasses" }, { id: 45, day: IMAGES.LEVEL5D, night: IMAGES.LEVEL5N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 5", level: 5 }, { id: 46, day: IMAGES.LEVEL10D, night: IMAGES.LEVEL10N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 10", level: 10 }, { id: 47, day: IMAGES.LEVEL15D, night: IMAGES.LEVEL15N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 15", level: 15 }, { id: 48, day: IMAGES.LEVEL20D, night: IMAGES.LEVEL20N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 20", level: 20 }, { id: 49, day: IMAGES.LEVEL25D, night: IMAGES.LEVEL25N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 25", level: 25 }, { id: 50, day: IMAGES.LEVEL30D, night: IMAGES.LEVEL30N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 30", level: 30 }, { id: 51, day: IMAGES.LEVEL35D, night: IMAGES.LEVEL35N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 35", level: 35 }, { id: 52, day: IMAGES.LEVEL40D, night: IMAGES.LEVEL40N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 40", level: 40 }, { id: 53, day: IMAGES.LEVEL45D, night: IMAGES.LEVEL45N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 45", level: 45 }, { id: 54, day: IMAGES.LEVEL50D, night: IMAGES.LEVEL50N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 50", level: 50 }, { id: 55, day: IMAGES.LEVEL55D, night: IMAGES.LEVEL55N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 55", level: 55 }, { id: 56, day: IMAGES.LEVEL60D, night: IMAGES.LEVEL60N, rarity: RARITY.LEVEL, author: "Starve.io", name: "More than Level 60", level: 60 } ] }; sprite[SPRITE.BODY] = []; sprite[ItemType.HAND] = []; sprite[SPRITE.CRATE] = []; sprite[ItemType.BOOK] = []; sprite[ItemType.BAG] = []; sprite[SPRITE.ACCESSORY] = []; for (var i = 0; i < COSMETICS.SKIN.length; i++) { sprite[SPRITE.BODY][i] = [COSMETICS.SKIN[i].day, COSMETICS.SKIN[i].night]; sprite[ItemType.HAND][i] = [COSMETICS.SKIN[i].dayHand, COSMETICS.SKIN[i].nightHand]; } for (var i = 0; i < COSMETICS.BOOK.length; i++) sprite[ItemType.BOOK][i] = [COSMETICS.BOOK[i].day, COSMETICS.BOOK[i].night]; for (var i = 0; i < COSMETICS.CRATE.length; i++) sprite[SPRITE.CRATE][i] = [COSMETICS.CRATE[i].day, COSMETICS.CRATE[i].night]; for (var i = 0; i < COSMETICS.BAG.length; i++) sprite[ItemType.BAG][i] = [COSMETICS.BAG[i].day, COSMETICS.BAG[i].night]; for (var i = 0; i < COSMETICS.ACCESSORY.length; i++) sprite[SPRITE.ACCESSORY][i] = [COSMETICS.ACCESSORY[i].day, COSMETICS.ACCESSORY[i].night]; }; function fill_path(ctx, fill, stroke, width) { if (fill) { ctx.fillStyle = fill; ctx.fill(); } if (stroke) { ctx.lineWidth = width; ctx.strokeStyle = stroke; ctx.stroke(); } } function round_rect(ctx, a, b, d, c, e) { d < 2 * e && (e = d / 2); c < 2 * e && (e = c / 2); 0 > e && (e = 0); ctx.beginPath(); ctx.moveTo(a + e, b); ctx.arcTo(a + d, b, a + d, b + c, e); ctx.arcTo(a + d, b + c, a, b + c, e); ctx.arcTo(a, b + c, a, b, e); ctx.arcTo(a, b, a + d, b, e); ctx.closePath(); } function circle(ctx, x, y, r) { ctx.beginPath(); ctx.arc(x, y, r, 0, PI2M); } function circle_angle(ctx, x, y, r, a) { ctx.beginPath(); ctx.lineCap = "round"; ctx.arc(x, y, r, 0, PI2M * a); } function round_regular_polygon(ctx, n, r, round) { var a = (PI2M) / n; ctx.beginPath(); // pre-compute path var vertex = [{ x: r, y: 0 }]; var middle = []; for (var i = 1; i < n; i++) { vertex.push({ x: window.Math.cos(i * a) * r, y: window.Math.sin(i * a) * r }); var len = vertex.length; middle.push(Utils.middle_point(vertex[len - 2], vertex[len - 1])); } middle.push(Utils.middle_point(vertex[vertex.length - 1], vertex[0])); // compute path var v = middle[middle.length - 1]; ctx.moveTo(v.x, v.y); for (var i = 0; i < n; i++) ctx.arcTo(vertex[i].x, vertex[i].y, middle[i].x, middle[i].y, round); ctx.closePath(); } function create_rotated_img(r, img) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var d = window.Math.sqrt(img.width * img.width + img.height * img.height); d2 = d / 2; can.width = d; can.height = d; ctx.translate(d2, d2); ctx.rotate(r); ctx.drawImage(img, -img.width / 2, -img.height / 2); return can; } function create_message(scale, msg) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var h = window.Math.floor(scale * 28); var hf = window.Math.floor(scale * 20); ctx.font = hf + "px Baloo Paaji"; var gap = 8 * scale; var w = ctx.measureText(msg).width + gap * 2; can.width = w; can.height = h; /* Draw background */ round_rect(ctx, 0, 0, w, h, 10 * scale); ctx.globalAlpha = 0.5; fill_path(ctx, "#000000"); ctx.globalAlpha = 1; /* Draw text */ (ctx.textBaseline = "middle"), (ctx.font = hf + "px Baloo Paaji"); ctx.beginPath(); ctx.fillStyle = "#FFF"; ctx.fillText(msg, gap, h / 2); return can; } function create_hurt_player(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 120; var h = scale * 110; var w2 = w / 2; var h2 = h / 2; var round = scale * 20; var wp = scale * 112; var hp = scale * 82; var wp2 = wp / 2; var hp2 = hp / 2; var width = scale * 4; can.width = w; can.height = h; /* Draw body */ ctx.globalAlpha = 1; ctx.translate(w2, h2); round_rect(ctx, -wp2, -hp2, wp, hp, round); fill_path(ctx, color, color, width); return can; } function create_garlic(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 264 * scale; can.height = 246 * scale; ctx.translate(0, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(75 * scale, 54 * scale); ctx.bezierCurveTo(79 * scale, 21 * scale, 131 * scale, 13 * scale, 153 * scale, 36 * scale); ctx.bezierCurveTo(204 * scale, 27 * scale, 221 * scale, 52 * scale, 216 * scale, 83 * scale); ctx.bezierCurveTo(241 * scale, 103 * scale, 232 * scale, 138 * scale, 214 * scale, 147 * scale); ctx.bezierCurveTo(223 * scale, 184 * scale, 201 * scale, 200 * scale, 175 * scale, 199 * scale); ctx.bezierCurveTo(156 * scale, 218 * scale, 135 * scale, 222 * scale, 114 * scale, 203 * scale); ctx.bezierCurveTo(62 * scale, 213 * scale, 66 * scale, 189 * scale, 59 * scale, 170 * scale); ctx.bezierCurveTo(27 * scale, 164 * scale, 31 * scale, 134 * scale, 38 * scale, 123 * scale); ctx.bezierCurveTo(11 * scale, 80 * scale, 51 * scale, 52 * scale, 75 * scale, 54 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, -10 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(75 * scale, 54 * scale); ctx.bezierCurveTo(79 * scale, 21 * scale, 131 * scale, 13 * scale, 153 * scale, 36 * scale); ctx.bezierCurveTo(204 * scale, 27 * scale, 221 * scale, 52 * scale, 216 * scale, 83 * scale); ctx.bezierCurveTo(241 * scale, 103 * scale, 232 * scale, 138 * scale, 214 * scale, 147 * scale); ctx.bezierCurveTo(223 * scale, 184 * scale, 201 * scale, 200 * scale, 175 * scale, 199 * scale); ctx.bezierCurveTo(156 * scale, 218 * scale, 135 * scale, 222 * scale, 114 * scale, 203 * scale); ctx.bezierCurveTo(62 * scale, 213 * scale, 66 * scale, 189 * scale, 59 * scale, 170 * scale); ctx.bezierCurveTo(27 * scale, 164 * scale, 31 * scale, 134 * scale, 38 * scale, 123 * scale); ctx.bezierCurveTo(11 * scale, 80 * scale, 51 * scale, 52 * scale, 75 * scale, 54 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(121 * scale, 102 * scale); ctx.bezierCurveTo(111 * scale, 80 * scale, 110 * scale, 66 * scale, 108 * scale, 51 * scale); ctx.bezierCurveTo(119 * scale, 65 * scale, 129 * scale, 85 * scale, 135 * scale, 99 * scale); ctx.bezierCurveTo(142 * scale, 67 * scale, 146 * scale, 60 * scale, 152 * scale, 50 * scale); ctx.bezierCurveTo(154 * scale, 71 * scale, 152 * scale, 85 * scale, 149 * scale, 104 * scale); ctx.bezierCurveTo(166 * scale, 88 * scale, 175 * scale, 83 * scale, 188 * scale, 78 * scale); ctx.bezierCurveTo(179 * scale, 91 * scale, 170 * scale, 103 * scale, 160 * scale, 112 * scale); ctx.bezierCurveTo(186 * scale, 107 * scale, 191 * scale, 107 * scale, 204 * scale, 108 * scale); ctx.bezierCurveTo(195 * scale, 114 * scale, 179 * scale, 120 * scale, 163 * scale, 123 * scale); ctx.bezierCurveTo(183 * scale, 130 * scale, 186 * scale, 135 * scale, 192 * scale, 140 * scale); ctx.bezierCurveTo(179 * scale, 141 * scale, 164 * scale, 139 * scale, 153 * scale, 135 * scale); ctx.bezierCurveTo(158 * scale, 145 * scale, 163 * scale, 159 * scale, 165 * scale, 177 * scale); ctx.bezierCurveTo(154 * scale, 166 * scale, 145 * scale, 153 * scale, 138 * scale, 139 * scale); ctx.bezierCurveTo(133 * scale, 155 * scale, 125 * scale, 170 * scale, 117 * scale, 182 * scale); ctx.bezierCurveTo(116 * scale, 160 * scale, 119 * scale, 151 * scale, 124 * scale, 138 * scale); ctx.bezierCurveTo(107 * scale, 150 * scale, 95 * scale, 156 * scale, 82 * scale, 159 * scale); ctx.bezierCurveTo(94 * scale, 140 * scale, 101 * scale, 136 * scale, 113 * scale, 128 * scale); ctx.bezierCurveTo(78 * scale, 123 * scale, 75 * scale, 121 * scale, 67 * scale, 118 * scale); ctx.bezierCurveTo(85 * scale, 112 * scale, 94 * scale, 112 * scale, 111 * scale, 113 * scale); ctx.bezierCurveTo(89 * scale, 97 * scale, 85 * scale, 93 * scale, 78 * scale, 82 * scale); ctx.bezierCurveTo(92 * scale, 85 * scale, 101 * scale, 90 * scale, 121 * scale, 102 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#8c514f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(128 * scale, 103 * scale); ctx.bezierCurveTo(111 * scale, 112 * scale, 117 * scale, 136 * scale, 140 * scale, 130 * scale); ctx.bezierCurveTo(151 * scale, 126 * scale, 156 * scale, 115 * scale, 155 * scale, 107 * scale); ctx.bezierCurveTo(155 * scale, 96 * scale, 154 * scale, 94 * scale, 148 * scale, 94 * scale); ctx.bezierCurveTo(141 * scale, 94 * scale, 146 * scale, 104 * scale, 136 * scale, 104 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#607871 #282532 return can; } // Christmas function create_garland_inv(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 70 * scale; can.height = 70 * scale; ctx.globalAlpha = 0.5; circle(ctx, 26 * scale, 26 * scale, 9 * scale); fill_path(ctx, color[0]); //#5f461f circle(ctx, 56 * scale, 36 * scale, 9 * scale); fill_path(ctx, color[1]); //#5f461f circle(ctx, 40 * scale, 50 * scale, 9 * scale); fill_path(ctx, color[2]); //#5f461f ctx.globalAlpha = 1; circle(ctx, 26 * scale, 26 * scale, 5 * scale); fill_path(ctx, color[0]); //#5f461f circle(ctx, 56 * scale, 36 * scale, 5 * scale); fill_path(ctx, color[1]); //#5f461f circle(ctx, 40 * scale, 50 * scale, 5 * scale); fill_path(ctx, color[2]); //#5f461f return can; } function create_garland(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 22 * scale; can.height = 22 * scale; ctx.globalAlpha = 0.4; circle(ctx, 11 * scale, 11 * scale, 10 * scale); fill_path(ctx, color[0]); //#5f461f ctx.globalAlpha = 0.7; circle(ctx, 11 * scale, 11 * scale, 7 * scale); fill_path(ctx, color[0]); //#5f461f ctx.globalAlpha = 1; circle(ctx, 11 * scale, 11 * scale, 4 * scale); fill_path(ctx, color[0]); //#5f461f return can; } function create_garland_light(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 20 * scale; can.height = 20 * scale; ctx.globalAlpha = 0.5; circle(ctx, 10 * scale, 10 * scale, 9 * scale); fill_path(ctx, color[0]); //#5f461f return can; } function create_roof(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 248 * scale; can.height = 247 * scale; ctx.save(); ctx.translate(69.5 * scale, 145 * scale); round_rect(ctx, -8.5 * scale, -63 * scale, 17 * scale, 127 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#8c5052 ctx.save(); ctx.translate(183 * scale, 145 * scale); round_rect(ctx, -8 * scale, -63 * scale, 16 * scale, 126 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#8c5052 ctx.save(); ctx.translate(123.5 * scale, 62.5 * scale); ctx.rotate(6.28); round_rect(ctx, -84.5 * scale, -25.5 * scale, 169 * scale, 51 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 6 * scale); //#4e7849 #4a4c24 ctx.save(); ctx.translate(123.5 * scale, 118 * scale); ctx.rotate(6.24); round_rect(ctx, -85.5 * scale, -24 * scale, 169 * scale, 48 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 6 * scale); //#4e7849 #4a4c24 ctx.save(); ctx.translate(122 * scale, 177.5 * scale); ctx.rotate(6.32); round_rect(ctx, -84 * scale, -23.5 * scale, 169 * scale, 47 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 6 * scale); //#4e7849 #4a4c24 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(37 * scale, 157 * scale); ctx.bezierCurveTo(49 * scale, 160 * scale, 49 * scale, 160 * scale, 61 * scale, 163 * scale); ctx.bezierCurveTo(49.5 * scale, 165.5 * scale, 49.5 * scale, 165.5 * scale, 38 * scale, 168 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#674037 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(205 * scale, 175 * scale); ctx.bezierCurveTo(192.5 * scale, 180 * scale, 192.5 * scale, 180 * scale, 180 * scale, 185 * scale); ctx.bezierCurveTo(193 * scale, 188 * scale, 193 * scale, 188 * scale, 206 * scale, 191 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#674037 return can; } function create_roof1(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 248 * scale; can.height = 247 * scale; ctx.save(); ctx.translate(182 * scale, 120 * scale); round_rect(ctx, -8 * scale, -67 * scale, 16 * scale, 134 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d ctx.save(); ctx.translate(68.5 * scale, 127.5 * scale); round_rect(ctx, -8.5 * scale, -70.5 * scale, 17 * scale, 141 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d ctx.save(); ctx.translate(123.5 * scale, 68 * scale); round_rect(ctx, -82.5 * scale, -24 * scale, 165 * scale, 48 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 6 * scale); //#878c69 #5f461f ctx.save(); ctx.translate(123 * scale, 179.5 * scale); round_rect(ctx, -83 * scale, -24.5 * scale, 166 * scale, 49 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 6 * scale); //#878c69 #5f461f ctx.save(); ctx.translate(123.5 * scale, 123.5 * scale); ctx.rotate(6.24); round_rect(ctx, -82.5 * scale, -24.5 * scale, 165 * scale, 49 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 6 * scale); //#878c69 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(204 * scale, 112 * scale); ctx.bezierCurveTo(149 * scale, 121.5 * scale, 96 * scale, 130 * scale, 94 * scale, 131 * scale); ctx.bezierCurveTo(149.5 * scale, 127.5 * scale, 149.5 * scale, 127.5 * scale, 205 * scale, 124 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#878c69 #5f461f return can; } function create_roof2(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 248 * scale; can.height = 247 * scale; ctx.save(); ctx.translate(183 * scale, 107 * scale); round_rect(ctx, -8 * scale, -70.5 * scale, 16 * scale, 141 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d ctx.save(); ctx.translate(69.5 * scale, 110 * scale); round_rect(ctx, -8.5 * scale, -71 * scale, 17 * scale, 143 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d ctx.save(); ctx.translate(123.5 * scale, 181 * scale); round_rect(ctx, -84.5 * scale, -26 * scale, 169 * scale, 52 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 6 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 95 * scale); ctx.bezierCurveTo(105 * scale, 96 * scale, 113 * scale, 99 * scale, 134 * scale, 102 * scale); ctx.bezierCurveTo(147 * scale, 106 * scale, 173 * scale, 100 * scale, 207 * scale, 105 * scale); ctx.bezierCurveTo(210 * scale, 105 * scale, 207 * scale, 140 * scale, 207 * scale, 154 * scale); ctx.bezierCurveTo(123.5 * scale, 151.5 * scale, 123.5 * scale, 151.5 * scale, 40 * scale, 149 * scale); ctx.bezierCurveTo(37 * scale, 145 * scale, 39 * scale, 95 * scale, 41 * scale, 96 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 6 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(68 * scale, 75 * scale); ctx.bezierCurveTo(54 * scale, 72.5 * scale, 54 * scale, 72.5 * scale, 40 * scale, 70 * scale); ctx.bezierCurveTo(38 * scale, 46 * scale, 40 * scale, 46 * scale, 53 * scale, 46 * scale); ctx.bezierCurveTo(201 * scale, 41 * scale, 201 * scale, 41 * scale, 201 * scale, 42 * scale); ctx.bezierCurveTo(211 * scale, 40 * scale, 208 * scale, 53 * scale, 208 * scale, 72 * scale); ctx.bezierCurveTo(209 * scale, 91 * scale, 210 * scale, 96 * scale, 194 * scale, 94 * scale); ctx.bezierCurveTo(119 * scale, 97 * scale, 119 * scale, 97 * scale, 44 * scale, 100 * scale); ctx.bezierCurveTo(39 * scale, 99 * scale, 40 * scale, 96 * scale, 40 * scale, 80 * scale); ctx.bezierCurveTo(54 * scale, 77.5 * scale, 54 * scale, 77.5 * scale, 68 * scale, 75 * scale); ctx.closePath(); fill_path(ctx, color[3], color[1], 6 * scale); //#9e793d #5f461f return can; } function create_zombie_head(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 191 * scale; can.height = 153 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(97.49996948242188 * scale, 95.12844848632812 * scale); round_rect(ctx, -62.5 * scale, -41.5 * scale, 125 * scale, 83 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(97.49996948242188 * scale, 95.12844848632812 * scale); round_rect(ctx, -62.5 * scale, -41.5 * scale, 125 * scale, 83 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.globalCompositeOperation = "destination-out"; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26.999969482421875 * scale, 50.850677490234375 * scale); ctx.bezierCurveTo(46.499969482421875 * scale, 64.85067749023438 * scale, 46.499969482421875 * scale, 64.85067749023438 * scale, 65.99996948242188 * scale, 78.85067749023438 * scale); ctx.bezierCurveTo(80.99996948242188 * scale, 87.85067749023438 * scale, 105.99996948242188 * scale, 82.85067749023438 * scale, 114.99996948242188 * scale, 80.85067749023438 * scale); ctx.bezierCurveTo(130.99996948242188 * scale, 69.85067749023438 * scale, 152.99996948242188 * scale, 70.85067749023438 * scale, 166.99996948242188 * scale, 67.85067749023438 * scale); ctx.bezierCurveTo(156.99996948242188 * scale, 52.850677490234375 * scale, 156.99996948242188 * scale, 52.850677490234375 * scale, 146.99996948242188 * scale, 37.850677490234375 * scale); ctx.bezierCurveTo(101.49996948242188 * scale, 37.350677490234375 * scale, 101.49996948242188 * scale, 37.350677490234375 * scale, 55.999969482421875 * scale, 36.850677490234375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4 * scale); //#9e793d #5f461f ctx.globalCompositeOperation = "source-over"; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(40.999969482421875 * scale, 59.850677490234375 * scale); ctx.bezierCurveTo(41.999969482421875 * scale, 50.850677490234375 * scale, 47.999969482421875 * scale, 47.850677490234375 * scale, 56.999969482421875 * scale, 49.850677490234375 * scale); ctx.bezierCurveTo(65.99996948242188 * scale, 41.850677490234375 * scale, 76.99996948242188 * scale, 42.850677490234375 * scale, 90.99996948242188 * scale, 47.850677490234375 * scale); ctx.bezierCurveTo(94.99996948242188 * scale, 42.850677490234375 * scale, 104.99996948242188 * scale, 42.850677490234375 * scale, 114.99996948242188 * scale, 47.850677490234375 * scale); ctx.bezierCurveTo(131.99996948242188 * scale, 42.850677490234375 * scale, 142.99996948242188 * scale, 48.850677490234375 * scale, 145.99996948242188 * scale, 56.850677490234375 * scale); ctx.bezierCurveTo(160.99996948242188 * scale, 63.850677490234375 * scale, 154.99996948242188 * scale, 69.85067749023438 * scale, 155.99996948242188 * scale, 70.85067749023438 * scale); ctx.bezierCurveTo(141.99996948242188 * scale, 71.85067749023438 * scale, 141.99996948242188 * scale, 71.85067749023438 * scale, 127.99996948242188 * scale, 72.85067749023438 * scale); ctx.bezierCurveTo(110.99996948242188 * scale, 83.85067749023438 * scale, 107.99996948242188 * scale, 82.85067749023438 * scale, 90.99996948242188 * scale, 85.85067749023438 * scale); ctx.bezierCurveTo(70.99996948242188 * scale, 83.85067749023438 * scale, 64.99996948242188 * scale, 79.85067749023438 * scale, 53.999969482421875 * scale, 70.85067749023438 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.999969482421875 * scale, 65.85067749023438 * scale); ctx.bezierCurveTo(36.999969482421875 * scale, 59.850677490234375 * scale, 34.999969482421875 * scale, 60.850677490234375 * scale, 39.999969482421875 * scale, 59.850677490234375 * scale); ctx.bezierCurveTo(47.999969482421875 * scale, 61.850677490234375 * scale, 62.999969482421875 * scale, 76.85067749023438 * scale, 74.99996948242188 * scale, 79.85067749023438 * scale); ctx.bezierCurveTo(93.99996948242188 * scale, 85.85067749023438 * scale, 111.99996948242188 * scale, 83.85067749023438 * scale, 124.99996948242188 * scale, 70.85067749023438 * scale); ctx.bezierCurveTo(129.99996948242188 * scale, 67.85067749023438 * scale, 145.99996948242188 * scale, 65.85067749023438 * scale, 159.99996948242188 * scale, 67.85067749023438 * scale); ctx.bezierCurveTo(159.99996948242188 * scale, 71.85067749023438 * scale, 159.99996948242188 * scale, 71.85067749023438 * scale, 159.99996948242188 * scale, 75.85067749023438 * scale); ctx.bezierCurveTo(146.99996948242188 * scale, 72.85067749023438 * scale, 144.99996948242188 * scale, 75.85067749023438 * scale, 143.99996948242188 * scale, 82.85067749023438 * scale); ctx.bezierCurveTo(144.99996948242188 * scale, 86.85067749023438 * scale, 140.99996948242188 * scale, 90.85067749023438 * scale, 137.99996948242188 * scale, 86.85067749023438 * scale); ctx.bezierCurveTo(139.99996948242188 * scale, 72.85067749023438 * scale, 135.99996948242188 * scale, 72.85067749023438 * scale, 133.99996948242188 * scale, 82.85067749023438 * scale); ctx.bezierCurveTo(127.99996948242188 * scale, 88.85067749023438 * scale, 124.99996948242188 * scale, 70.85067749023438 * scale, 116.99996948242188 * scale, 86.85067749023438 * scale); ctx.bezierCurveTo(110.99996948242188 * scale, 91.85067749023438 * scale, 96.99996948242188 * scale, 81.85067749023438 * scale, 89.99996948242188 * scale, 90.85067749023438 * scale); ctx.bezierCurveTo(85.99996948242188 * scale, 92.85067749023438 * scale, 81.99996948242188 * scale, 95.85067749023438 * scale, 76.99996948242188 * scale, 86.85067749023438 * scale); ctx.bezierCurveTo(67.99996948242188 * scale, 93.85067749023438 * scale, 67.99996948242188 * scale, 91.85067749023438 * scale, 60.999969482421875 * scale, 79.85067749023438 * scale); ctx.bezierCurveTo(53.999969482421875 * scale, 71.85067749023438 * scale, 52.999969482421875 * scale, 72.85067749023438 * scale, 46.999969482421875 * scale, 77.85067749023438 * scale); ctx.bezierCurveTo(41.999969482421875 * scale, 78.85067749023438 * scale, 42.999969482421875 * scale, 69.85067749023438 * scale, 33.999969482421875 * scale, 65.85067749023438 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#9e793d #5f461f circle(ctx, 68 * scale, 111.29513549804688 * scale, 15 * scale); fill_path(ctx, color[7], color[8], 4 * scale); //#9e793d #5f461f circle(ctx, 123 * scale, 111.29510498046875 * scale, 15 * scale); fill_path(ctx, color[7], color[8], 4 * scale); //#9e793d #5f461f circle(ctx, 63 * scale, 106 * scale, 5 * scale); fill_path(ctx, color[9]); //#8c1e3a circle(ctx, 118 * scale, 106 * scale, 5 * scale); fill_path(ctx, color[9]); //#8c1e3a return can; } function create_zombie_boss(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 191 * scale; can.height = 153 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(96.49996948242188 * scale, 66.79510498046875 * scale); ctx.rotate(0); round_rect(ctx, -79.5 * scale, -48.5 * scale, 159 * scale, 97 * scale, 22 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(96.49996948242188 * scale, 66.79510498046875 * scale); ctx.rotate(0); round_rect(ctx, -79.5 * scale, -48.5 * scale, 159 * scale, 97 * scale, 22 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.translate(2 * scale, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(119 * scale, 28 * scale); ctx.bezierCurveTo(119 * scale, 22 * scale, 119 * scale, 20 * scale, 122 * scale, 16 * scale); ctx.bezierCurveTo(149 * scale, 39 * scale, 149 * scale, 39 * scale, 176 * scale, 63 * scale); ctx.bezierCurveTo(176 * scale, 75 * scale, 176 * scale, 75 * scale, 175 * scale, 88 * scale); ctx.bezierCurveTo(174 * scale, 90 * scale, 174 * scale, 90 * scale, 172 * scale, 93 * scale); ctx.bezierCurveTo(171 * scale, 101 * scale, 169 * scale, 109 * scale, 164 * scale, 113 * scale); ctx.bezierCurveTo(163 * scale, 104 * scale, 163 * scale, 104 * scale, 162 * scale, 95 * scale); ctx.bezierCurveTo(155 * scale, 105 * scale, 155 * scale, 105 * scale, 147 * scale, 116 * scale); ctx.bezierCurveTo(87 * scale, 114 * scale, 87 * scale, 114 * scale, 26 * scale, 112 * scale); ctx.bezierCurveTo(27 * scale, 106 * scale, 27 * scale, 106 * scale, 27 * scale, 101 * scale); ctx.bezierCurveTo(24 * scale, 104 * scale, 24 * scale, 104 * scale, 20 * scale, 108 * scale); ctx.bezierCurveTo(17 * scale, 103 * scale, 20 * scale, 86 * scale, 23 * scale, 72 * scale); ctx.bezierCurveTo(15 * scale, 74 * scale, 14 * scale, 78 * scale, 12 * scale, 83 * scale); ctx.bezierCurveTo(12 * scale, 65 * scale, 12 * scale, 54 * scale, 16 * scale, 42 * scale); ctx.bezierCurveTo(14 * scale, 39 * scale, 14 * scale, 39 * scale, 12 * scale, 36 * scale); ctx.bezierCurveTo(16 * scale, 33 * scale, 16 * scale, 33 * scale, 19 * scale, 30 * scale); ctx.bezierCurveTo(18 * scale, 27 * scale, 18 * scale, 27 * scale, 17 * scale, 25 * scale); ctx.bezierCurveTo(24 * scale, 24 * scale, 31 * scale, 21 * scale, 29 * scale, 19 * scale); ctx.bezierCurveTo(37 * scale, 25 * scale, 37 * scale, 25 * scale, 45 * scale, 31 * scale); ctx.bezierCurveTo(40 * scale, 23 * scale, 40 * scale, 21 * scale, 42 * scale, 16 * scale); ctx.bezierCurveTo(74 * scale, 16 * scale, 74 * scale, 16 * scale, 106 * scale, 16 * scale); ctx.bezierCurveTo(113 * scale, 21 * scale, 113 * scale, 21 * scale, 119 * scale, 26 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#9e793d #5f461f return can; } function create_zombie_hurt(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 191 * scale; can.height = 153 * scale; ctx.save(); ctx.translate(96.49996948242188 * scale, 66.79510498046875 * scale); round_rect(ctx, -79.5 * scale, -48.5 * scale, 159 * scale, 97 * scale, 22 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f ctx.translate(2 * scale, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(119 * scale, 28 * scale); ctx.bezierCurveTo(119 * scale, 22 * scale, 119 * scale, 20 * scale, 122 * scale, 16 * scale); ctx.bezierCurveTo(149 * scale, 39 * scale, 149 * scale, 39 * scale, 176 * scale, 63 * scale); ctx.bezierCurveTo(176 * scale, 75 * scale, 176 * scale, 75 * scale, 175 * scale, 88 * scale); ctx.bezierCurveTo(174 * scale, 90 * scale, 174 * scale, 90 * scale, 172 * scale, 93 * scale); ctx.bezierCurveTo(171 * scale, 101 * scale, 169 * scale, 109 * scale, 164 * scale, 113 * scale); ctx.bezierCurveTo(163 * scale, 104 * scale, 163 * scale, 104 * scale, 162 * scale, 95 * scale); ctx.bezierCurveTo(155 * scale, 105 * scale, 155 * scale, 105 * scale, 147 * scale, 116 * scale); ctx.bezierCurveTo(87 * scale, 114 * scale, 87 * scale, 114 * scale, 26 * scale, 112 * scale); ctx.bezierCurveTo(27 * scale, 106 * scale, 27 * scale, 106 * scale, 27 * scale, 101 * scale); ctx.bezierCurveTo(24 * scale, 104 * scale, 24 * scale, 104 * scale, 20 * scale, 108 * scale); ctx.bezierCurveTo(17 * scale, 103 * scale, 20 * scale, 86 * scale, 23 * scale, 72 * scale); ctx.bezierCurveTo(15 * scale, 74 * scale, 14 * scale, 78 * scale, 12 * scale, 83 * scale); ctx.bezierCurveTo(12 * scale, 65 * scale, 12 * scale, 54 * scale, 16 * scale, 42 * scale); ctx.bezierCurveTo(14 * scale, 39 * scale, 14 * scale, 39 * scale, 12 * scale, 36 * scale); ctx.bezierCurveTo(16 * scale, 33 * scale, 16 * scale, 33 * scale, 19 * scale, 30 * scale); ctx.bezierCurveTo(18 * scale, 27 * scale, 18 * scale, 27 * scale, 17 * scale, 25 * scale); ctx.bezierCurveTo(24 * scale, 24 * scale, 31 * scale, 21 * scale, 29 * scale, 19 * scale); ctx.bezierCurveTo(37 * scale, 25 * scale, 37 * scale, 25 * scale, 45 * scale, 31 * scale); ctx.bezierCurveTo(40 * scale, 23 * scale, 40 * scale, 21 * scale, 42 * scale, 16 * scale); ctx.bezierCurveTo(74 * scale, 16 * scale, 74 * scale, 16 * scale, 106 * scale, 16 * scale); ctx.bezierCurveTo(113 * scale, 21 * scale, 113 * scale, 21 * scale, 119 * scale, 26 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(97.49996948242188 * scale, 95.12844848632812 * scale); round_rect(ctx, -62.5 * scale, -41.5 * scale, 125 * scale, 83 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f return can; } function create_plant_seed(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 40; var h = scale * 40; can.width = w; can.height = h; var x = (scale * w) / 2; var y = (scale * h) / 2; var r = scale * 15; /* Draw planting 1 */ ctx.save(); ctx.translate(x, y); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); var r = 5 * scale; var x = 2 * scale; var y = 1 * scale; ctx.translate(x, y); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[1]); ctx.restore(); return can; } function create_food_plant(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 200; var h = scale * 200; can.width = w; can.height = h; var img = create_plant(0.35, false, /*["#0e3022", "#0b8052", "#077b49"]*/["#0e3022", "#0b8052", "#077b49"]); ctx.drawImage(img, 10, 10); var img = create_fruit(0.9, false, /*["#54318e", "#725ba3"]*/["#3d2a6e", "#8255b5"] /*["#ac222a", "#e6636a"]*/); ctx.drawImage(img, 21, 20); var img = create_fruit(0.9, false, /*["#54318e", "#725ba3"]*/["#3d2a6e", "#8255b5"] /*["#ac222a", "#e6636a"]*/); ctx.drawImage(img, 38, 28); var img = create_fruit(0.9, false, /*["#54318e", "#725ba3"]*/["#3d2a6e", "#8255b5"] /*["#ac222a", "#e6636a"]*/); ctx.drawImage(img, 15, 37); var img = create_fruit(0.9, false, /*["#54318e", "#725ba3"]*/["#3d2a6e", "#8255b5"] /*["#ac222a", "#e6636a"]*/); ctx.drawImage(img, 32, 45); return can; } function create_gear(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 100; var h = scale * 100; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw rectangle */ var wr = scale * 5; var hr = scale * 28; var wr2 = wr / 2; var hr2 = hr / 2; ctx.translate(x, y); for (var i = 0; i < 4; i++) { round_rect(ctx, -wr2, -hr2, wr, hr, scale * 2); ctx.rotate(PI4D); fill_path(ctx, color); } /* Draw cicle */ ctx.arc(0, 0, 10 * scale, 0, PI2M); fill_path(ctx, color); ctx.globalCompositeOperation = "destination-out"; circle(ctx, 0, 0, scale * 4); ctx.fill(); return can; } function create_gear_option(scale, color, t) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 32; var h = scale * 32; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw rectangle */ var wr = scale * 5; var hr = scale * 28; var wr2 = wr / 2; var hr2 = hr / 2; ctx.translate(0 * scale, 0 * scale); ctx.translate(x, y); if (t == 1) { circle(ctx, 0, 0, 10 * scale, 0); fill_path(ctx, color[2], color[2], 3 * scale); for (var i = 0; i < 4; i++) { round_rect(ctx, -wr2, -hr2, wr, hr, scale * 2); ctx.rotate(PI4D); fill_path(ctx, color[2], color[2], 4 * scale); } } circle(ctx, 0, 0, 10 * scale, 0); fill_path(ctx, color[0], color[1], 1.5 * scale); for (var i = 0; i < 4; i++) { round_rect(ctx, -wr2, -hr2, wr, hr, scale * 2); ctx.rotate(PI4D); fill_path(ctx, color[0], color[1], 1.5 * scale); } circle(ctx, 0, 0, 10 * scale, 0); fill_path(ctx, color[0]); circle(ctx, 0, 0, 4 * scale, 0); fill_path(ctx, color[2], color[1], 1.5 * scale); ctx.globalCompositeOperation = "destination-out"; circle(ctx, 0, 0, 4 * scale, 0); fill_path(ctx, color[0], color[1], 2 * scale); ctx.globalCompositeOperation = "source-over"; circle(ctx, 0, 0, 4 * scale, 0); fill_path(ctx, undefined, color[1], 2 * scale); return can; } function create_workbench(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 125; var h = scale * 95; var w2 = w / 2; var h2 = h / 2; var round = scale * 10; var shadow = scale * 8; var ww = scale * 112; var hw = scale * 82; var ww2 = ww / 2; var hw2 = hw / 2; var width = scale * 4; can.width = w; can.height = h; /* Draw shadow of the table */ ctx.translate(w2 - 4 * scale, h2 + 4 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; round_rect(ctx, -ww2, -hw2, ww, hw, round); fill_path(ctx, color[0]); /* Draw table */ ctx.globalAlpha = 1; ctx.translate(0, -shadow); round_rect(ctx, -ww2, -hw2, ww, hw, round); fill_path(ctx, color[1], color[2], width); /* Draw set table */ var w = 55 * scale; var h = 45 * scale; var round = 5; ctx.translate(-40 * scale, -30 * scale); round_rect(ctx, 0, 0, w, h, round); fill_path(ctx, color[3]); /* Draw gears */ var img = create_gear(0.7 * scale, color[3]); ctx.drawImage(img, 45 * scale, -25 * scale); var img = create_gear(0.7 * scale, color[3]); ctx.drawImage(img, 45 * scale, 15 * scale); var img = create_gear(1.2 * scale, color[3]); ctx.drawImage(img, 28 * scale, -30 * scale); /* Draw craft tool */ var w = 15 * scale; var h = 70 * scale; var round = 5 * scale; ctx.translate(78 * scale, -5 * scale); round_rect(ctx, 0, 0, w, h, round); fill_path(ctx, color[4]); /* Draw ruler */ var w = 9 * scale; var h = 50 * scale; var round = 3 * scale; ctx.translate(-20 * scale, 20 * scale); ctx.rotate(window.Math.PI / 5); ctx.globalAlpha = 0.6; round_rect(ctx, 0, 0, w, h, round); fill_path(ctx, color[5]); /* Draw square ruler */ ctx.translate(-20 * scale, 29 * scale); ctx.rotate(window.Math.PI / 5); ctx.globalAlpha = 0.6; ctx.beginPath(); ctx.lineJoin = "round"; ctx.moveTo(0, 0); ctx.lineTo(0, 30 * scale); ctx.lineTo(30 * scale, 30 * scale); ctx.closePath(); fill_path(ctx, null, color[5], 8 * scale); return can; } function create_rabbit(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 85; var h = scale * 115; var shadow = scale * 6; var width = scale * 4; can.width = w; can.height = h; /* Draw shadow of the rabbit */ ctx.translate(-130 * scale, -60 * scale + shadow); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.bezierCurveTo(190 * scale, 87 * scale, 201 * scale, 59 * scale, 208 * scale, 64 * scale); ctx.bezierCurveTo(213 * scale, 68 * scale, 204 * scale, 93 * scale, 195 * scale, 109 * scale); ctx.bezierCurveTo(195 * scale, 109 * scale, 202 * scale, 124 * scale, 191 * scale, 141 * scale); ctx.bezierCurveTo(182 * scale, 151 * scale, 164 * scale, 155 * scale, 148 * scale, 144 * scale); ctx.bezierCurveTo(136 * scale, 135 * scale, 138 * scale, 111 * scale, 145 * scale, 104 * scale); ctx.bezierCurveTo(140 * scale, 92 * scale, 131 * scale, 67 * scale, 138 * scale, 63 * scale); ctx.bezierCurveTo(145 * scale, 61 * scale, 153 * scale, 82 * scale, 155 * scale, 96 * scale); ctx.bezierCurveTo(167 * scale, 91 * scale, 178 * scale, 92 * scale, 187 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[0]); /* Draw Rabbit */ ctx.translate(0, -shadow); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(190 * scale, 87 * scale, 201 * scale, 59 * scale, 208 * scale, 64 * scale); ctx.bezierCurveTo(213 * scale, 68 * scale, 204 * scale, 93 * scale, 195 * scale, 109 * scale); ctx.bezierCurveTo(195 * scale, 109 * scale, 202 * scale, 124 * scale, 191 * scale, 141 * scale); ctx.bezierCurveTo(182 * scale, 151 * scale, 164 * scale, 155 * scale, 148 * scale, 144 * scale); ctx.bezierCurveTo(136 * scale, 135 * scale, 138 * scale, 111 * scale, 145 * scale, 104 * scale); ctx.bezierCurveTo(140 * scale, 92 * scale, 131 * scale, 67 * scale, 138 * scale, 63 * scale); ctx.bezierCurveTo(145 * scale, 61 * scale, 153 * scale, 82 * scale, 155 * scale, 96 * scale); ctx.bezierCurveTo(167 * scale, 91 * scale, 178 * scale, 92 * scale, 187 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4); var x_eye = scale * 155; var y_eye = scale * 133; var r_eye = scale * 10; var r_pupil1 = scale * 3; var x_pupil = x_eye + scale * -3; var y_pupil = y_eye + scale * -5; /* Draw eyes */ /* Left */ ctx.save(); ctx.translate(x_eye, y_eye); ctx.globalAlpha = 1; circle(ctx, 0, 0, r_eye); fill_path(ctx, color[3]); ctx.restore(); /* Left Pupil */ ctx.save(); ctx.translate(x_pupil, y_pupil); ctx.globalAlpha = 1; circle(ctx, 0, 0, r_pupil1); fill_path(ctx, color[4]); ctx.restore(); /* Right */ ctx.save(); ctx.translate(x_eye + 27 * scale, y_eye); ctx.globalAlpha = 1; circle(ctx, 0, 0, r_eye); fill_path(ctx, color[3]); ctx.restore(); /* Left Pupil */ ctx.save(); ctx.translate(27 * scale + x_pupil, y_pupil); ctx.globalAlpha = 1; circle(ctx, 0, 0, r_pupil1); fill_path(ctx, color[4]); return can; } function create_hurt_rabbit(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 85; var h = scale * 115; var shadow = scale * 6; var width = scale * 4; can.width = w; can.height = h; /* Draw hurt of the rabbit */ ctx.translate(-130 * scale, -60 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(190 * scale, 87 * scale, 201 * scale, 59 * scale, 208 * scale, 64 * scale); ctx.bezierCurveTo(213 * scale, 68 * scale, 204 * scale, 93 * scale, 195 * scale, 109 * scale); ctx.bezierCurveTo(195 * scale, 109 * scale, 202 * scale, 124 * scale, 191 * scale, 141 * scale); ctx.bezierCurveTo(182 * scale, 151 * scale, 164 * scale, 155 * scale, 148 * scale, 144 * scale); ctx.bezierCurveTo(136 * scale, 135 * scale, 138 * scale, 111 * scale, 145 * scale, 104 * scale); ctx.bezierCurveTo(140 * scale, 92 * scale, 131 * scale, 67 * scale, 138 * scale, 63 * scale); ctx.bezierCurveTo(145 * scale, 61 * scale, 153 * scale, 82 * scale, 155 * scale, 96 * scale); ctx.bezierCurveTo(167 * scale, 91 * scale, 178 * scale, 92 * scale, 187 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color, color, width); return can; } function create_hurt_wolf(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 188 * scale; can.height = 190 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.00567626953125 * scale, 95.44320678710938 * scale); ctx.bezierCurveTo(42.00567626953125 * scale, 87.44320678710938 * scale, 48.00567626953125 * scale, 51.443206787109375 * scale, 74.00567626953125 * scale, 47.443206787109375 * scale); ctx.bezierCurveTo(100.00567626953125 * scale, 42.443206787109375 * scale, 118.00567626953125 * scale, 49.443206787109375 * scale, 131.00567626953125 * scale, 55.443206787109375 * scale); ctx.bezierCurveTo(140.00567626953125 * scale, 70.44320678710938 * scale, 145.00567626953125 * scale, 87.44320678710938 * scale, 152.00567626953125 * scale, 94.44320678710938 * scale); ctx.bezierCurveTo(149.00567626953125 * scale, 99.44320678710938 * scale, 147.00567626953125 * scale, 98.44320678710938 * scale, 141.00567626953125 * scale, 101.44320678710938 * scale); ctx.bezierCurveTo(147.00567626953125 * scale, 108.44320678710938 * scale, 147.00567626953125 * scale, 111.44320678710938 * scale, 147.00567626953125 * scale, 112.44320678710938 * scale); ctx.bezierCurveTo(143.00567626953125 * scale, 112.44320678710938 * scale, 141.00567626953125 * scale, 112.44320678710938 * scale, 137.00567626953125 * scale, 111.44320678710938 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 117.44320678710938 * scale, 138.00567626953125 * scale, 120.44320678710938 * scale, 138.00567626953125 * scale, 124.44320678710938 * scale); ctx.bezierCurveTo(125.00567626953125 * scale, 107.44320678710938 * scale, 121.00567626953125 * scale, 124.44320678710938 * scale, 110.00567626953125 * scale, 141.44320678710938 * scale); ctx.bezierCurveTo(102.00567626953125 * scale, 158.44320678710938 * scale, 89.00567626953125 * scale, 158.44320678710938 * scale, 80.00567626953125 * scale, 144.44320678710938 * scale); ctx.bezierCurveTo(61.00567626953125 * scale, 111.44320678710938 * scale, 56.00567626953125 * scale, 117.44320678710938 * scale, 48.00567626953125 * scale, 120.44320678710938 * scale); ctx.bezierCurveTo(46.00567626953125 * scale, 118.44320678710938 * scale, 47.00567626953125 * scale, 112.44320678710938 * scale, 48.00567626953125 * scale, 107.44320678710938 * scale); ctx.bezierCurveTo(43.00567626953125 * scale, 111.44320678710938 * scale, 40.00567626953125 * scale, 111.44320678710938 * scale, 37.00567626953125 * scale, 110.44320678710938 * scale); ctx.bezierCurveTo(39.50567626953125 * scale, 104.94320678710938 * scale, 39.50567626953125 * scale, 104.94320678710938 * scale, 42.00567626953125 * scale, 99.44320678710938 * scale); ctx.bezierCurveTo(33.00567626953125 * scale, 99.44320678710938 * scale, 33.00567626953125 * scale, 98.44320678710938 * scale, 33.00567626953125 * scale, 96.44320678710938 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51.00567626953125 * scale, 72.53409576416016 * scale); ctx.bezierCurveTo(48.00567626953125 * scale, 56.534095764160156 * scale, 48.00567626953125 * scale, 49.534095764160156 * scale, 54.00567626953125 * scale, 35.534095764160156 * scale); ctx.bezierCurveTo(58.00567626953125 * scale, 26.534095764160156 * scale, 65.00567626953125 * scale, 27.534095764160156 * scale, 73.00567626953125 * scale, 40.534095764160156 * scale); ctx.bezierCurveTo(81.00567626953125 * scale, 49.534095764160156 * scale, 82.00567626953125 * scale, 50.534095764160156 * scale, 83.00567626953125 * scale, 51.534095764160156 * scale); ctx.bezierCurveTo(77.00567626953125 * scale, 71.53409576416016 * scale, 64.00567626953125 * scale, 75.53409576416016 * scale, 51.00567626953125 * scale, 72.53409576416016 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.00567626953125 * scale, 50.53410339355469 * scale); ctx.bezierCurveTo(112.00567626953125 * scale, 48.53410339355469 * scale, 125.00567626953125 * scale, 21.534103393554688 * scale, 132.00567626953125 * scale, 33.53410339355469 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 42.53410339355469 * scale, 140.00567626953125 * scale, 64.53410339355469 * scale, 136.00567626953125 * scale, 75.53410339355469 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#161515 #a01f26 return can; } function create_wolf(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 188 * scale; can.height = 190 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.00567626953125 * scale, 95.44320678710938 * scale); ctx.bezierCurveTo(42.00567626953125 * scale, 87.44320678710938 * scale, 48.00567626953125 * scale, 51.443206787109375 * scale, 74.00567626953125 * scale, 47.443206787109375 * scale); ctx.bezierCurveTo(100.00567626953125 * scale, 42.443206787109375 * scale, 118.00567626953125 * scale, 49.443206787109375 * scale, 131.00567626953125 * scale, 55.443206787109375 * scale); ctx.bezierCurveTo(140.00567626953125 * scale, 70.44320678710938 * scale, 145.00567626953125 * scale, 87.44320678710938 * scale, 152.00567626953125 * scale, 94.44320678710938 * scale); ctx.bezierCurveTo(149.00567626953125 * scale, 99.44320678710938 * scale, 147.00567626953125 * scale, 98.44320678710938 * scale, 141.00567626953125 * scale, 101.44320678710938 * scale); ctx.bezierCurveTo(147.00567626953125 * scale, 108.44320678710938 * scale, 147.00567626953125 * scale, 111.44320678710938 * scale, 147.00567626953125 * scale, 112.44320678710938 * scale); ctx.bezierCurveTo(143.00567626953125 * scale, 112.44320678710938 * scale, 141.00567626953125 * scale, 112.44320678710938 * scale, 137.00567626953125 * scale, 111.44320678710938 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 117.44320678710938 * scale, 138.00567626953125 * scale, 120.44320678710938 * scale, 138.00567626953125 * scale, 124.44320678710938 * scale); ctx.bezierCurveTo(125.00567626953125 * scale, 107.44320678710938 * scale, 121.00567626953125 * scale, 124.44320678710938 * scale, 110.00567626953125 * scale, 141.44320678710938 * scale); ctx.bezierCurveTo(102.00567626953125 * scale, 158.44320678710938 * scale, 89.00567626953125 * scale, 158.44320678710938 * scale, 80.00567626953125 * scale, 144.44320678710938 * scale); ctx.bezierCurveTo(61.00567626953125 * scale, 111.44320678710938 * scale, 56.00567626953125 * scale, 117.44320678710938 * scale, 48.00567626953125 * scale, 120.44320678710938 * scale); ctx.bezierCurveTo(46.00567626953125 * scale, 118.44320678710938 * scale, 47.00567626953125 * scale, 112.44320678710938 * scale, 48.00567626953125 * scale, 107.44320678710938 * scale); ctx.bezierCurveTo(43.00567626953125 * scale, 111.44320678710938 * scale, 40.00567626953125 * scale, 111.44320678710938 * scale, 37.00567626953125 * scale, 110.44320678710938 * scale); ctx.bezierCurveTo(39.50567626953125 * scale, 104.94320678710938 * scale, 39.50567626953125 * scale, 104.94320678710938 * scale, 42.00567626953125 * scale, 99.44320678710938 * scale); ctx.bezierCurveTo(33.00567626953125 * scale, 99.44320678710938 * scale, 33.00567626953125 * scale, 98.44320678710938 * scale, 33.00567626953125 * scale, 96.44320678710938 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60.00567626953125 * scale, 99.35227966308594 * scale); ctx.bezierCurveTo(70.00567626953125 * scale, 82.35227966308594 * scale, 85.00567626953125 * scale, 86.35227966308594 * scale, 87.00567626953125 * scale, 97.35227966308594 * scale); ctx.bezierCurveTo(89.00567626953125 * scale, 101.35227966308594 * scale, 88.00567626953125 * scale, 105.35227966308594 * scale, 87.00567626953125 * scale, 110.35227966308594 * scale); ctx.bezierCurveTo(89.00567626953125 * scale, 111.35227966308594 * scale, 91.00567626953125 * scale, 112.35227966308594 * scale, 93.00567626953125 * scale, 115.35227966308594 * scale); ctx.bezierCurveTo(96.00567626953125 * scale, 111.35227966308594 * scale, 99.00567626953125 * scale, 111.35227966308594 * scale, 100.00567626953125 * scale, 110.35227966308594 * scale); ctx.bezierCurveTo(98.00567626953125 * scale, 92.35227966308594 * scale, 103.00567626953125 * scale, 86.35227966308594 * scale, 113.00567626953125 * scale, 89.35227966308594 * scale); ctx.bezierCurveTo(122.00567626953125 * scale, 92.35227966308594 * scale, 123.00567626953125 * scale, 94.35227966308594 * scale, 126.00567626953125 * scale, 98.35227966308594 * scale); ctx.bezierCurveTo(124.00567626953125 * scale, 102.35227966308594 * scale, 123.00567626953125 * scale, 103.35227966308594 * scale, 121.00567626953125 * scale, 104.35227966308594 * scale); ctx.bezierCurveTo(124.00567626953125 * scale, 105.35227966308594 * scale, 126.00567626953125 * scale, 107.35227966308594 * scale, 129.00567626953125 * scale, 111.35227966308594 * scale); ctx.bezierCurveTo(115.00567626953125 * scale, 122.35227966308594 * scale, 113.00567626953125 * scale, 145.35227966308594 * scale, 100.00567626953125 * scale, 152.35227966308594 * scale); ctx.bezierCurveTo(91.00567626953125 * scale, 158.35227966308594 * scale, 83.00567626953125 * scale, 149.35227966308594 * scale, 76.00567626953125 * scale, 138.35227966308594 * scale); ctx.bezierCurveTo(67.00567626953125 * scale, 114.35227966308594 * scale, 63.00567626953125 * scale, 113.35227966308594 * scale, 59.00567626953125 * scale, 111.35227966308594 * scale); ctx.bezierCurveTo(62.00567626953125 * scale, 107.35227966308594 * scale, 64.00567626953125 * scale, 105.35227966308594 * scale, 66.00567626953125 * scale, 104.35227966308594 * scale); ctx.bezierCurveTo(63.00567626953125 * scale, 100.35227966308594 * scale, 62.00567626953125 * scale, 100.35227966308594 * scale, 60.00567626953125 * scale, 99.35227966308594 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51.00567626953125 * scale, 72.53409576416016 * scale); ctx.bezierCurveTo(48.00567626953125 * scale, 56.534095764160156 * scale, 48.00567626953125 * scale, 49.534095764160156 * scale, 54.00567626953125 * scale, 35.534095764160156 * scale); ctx.bezierCurveTo(58.00567626953125 * scale, 26.534095764160156 * scale, 65.00567626953125 * scale, 27.534095764160156 * scale, 73.00567626953125 * scale, 40.534095764160156 * scale); ctx.bezierCurveTo(81.00567626953125 * scale, 49.534095764160156 * scale, 82.00567626953125 * scale, 50.534095764160156 * scale, 83.00567626953125 * scale, 51.534095764160156 * scale); ctx.bezierCurveTo(77.00567626953125 * scale, 71.53409576416016 * scale, 64.00567626953125 * scale, 75.53409576416016 * scale, 51.00567626953125 * scale, 72.53409576416016 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.00567626953125 * scale, 50.53410339355469 * scale); ctx.bezierCurveTo(112.00567626953125 * scale, 48.53410339355469 * scale, 125.00567626953125 * scale, 21.534103393554688 * scale, 132.00567626953125 * scale, 33.53410339355469 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 42.53410339355469 * scale, 140.00567626953125 * scale, 64.53410339355469 * scale, 136.00567626953125 * scale, 75.53410339355469 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#161515 #a01f26 ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.00567626953125 * scale, 95.44320678710938 * scale); ctx.bezierCurveTo(42.00567626953125 * scale, 87.44320678710938 * scale, 48.00567626953125 * scale, 51.443206787109375 * scale, 74.00567626953125 * scale, 47.443206787109375 * scale); ctx.bezierCurveTo(100.00567626953125 * scale, 42.443206787109375 * scale, 118.00567626953125 * scale, 49.443206787109375 * scale, 131.00567626953125 * scale, 55.443206787109375 * scale); ctx.bezierCurveTo(140.00567626953125 * scale, 70.44320678710938 * scale, 145.00567626953125 * scale, 87.44320678710938 * scale, 152.00567626953125 * scale, 94.44320678710938 * scale); ctx.bezierCurveTo(149.00567626953125 * scale, 99.44320678710938 * scale, 147.00567626953125 * scale, 98.44320678710938 * scale, 141.00567626953125 * scale, 101.44320678710938 * scale); ctx.bezierCurveTo(147.00567626953125 * scale, 108.44320678710938 * scale, 147.00567626953125 * scale, 111.44320678710938 * scale, 147.00567626953125 * scale, 112.44320678710938 * scale); ctx.bezierCurveTo(143.00567626953125 * scale, 112.44320678710938 * scale, 141.00567626953125 * scale, 112.44320678710938 * scale, 137.00567626953125 * scale, 111.44320678710938 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 117.44320678710938 * scale, 138.00567626953125 * scale, 120.44320678710938 * scale, 138.00567626953125 * scale, 124.44320678710938 * scale); ctx.bezierCurveTo(125.00567626953125 * scale, 107.44320678710938 * scale, 121.00567626953125 * scale, 124.44320678710938 * scale, 110.00567626953125 * scale, 141.44320678710938 * scale); ctx.bezierCurveTo(102.00567626953125 * scale, 158.44320678710938 * scale, 89.00567626953125 * scale, 158.44320678710938 * scale, 80.00567626953125 * scale, 144.44320678710938 * scale); ctx.bezierCurveTo(61.00567626953125 * scale, 111.44320678710938 * scale, 56.00567626953125 * scale, 117.44320678710938 * scale, 48.00567626953125 * scale, 120.44320678710938 * scale); ctx.bezierCurveTo(46.00567626953125 * scale, 118.44320678710938 * scale, 47.00567626953125 * scale, 112.44320678710938 * scale, 48.00567626953125 * scale, 107.44320678710938 * scale); ctx.bezierCurveTo(43.00567626953125 * scale, 111.44320678710938 * scale, 40.00567626953125 * scale, 111.44320678710938 * scale, 37.00567626953125 * scale, 110.44320678710938 * scale); ctx.bezierCurveTo(39.50567626953125 * scale, 104.94320678710938 * scale, 39.50567626953125 * scale, 104.94320678710938 * scale, 42.00567626953125 * scale, 99.44320678710938 * scale); ctx.bezierCurveTo(33.00567626953125 * scale, 99.44320678710938 * scale, 33.00567626953125 * scale, 98.44320678710938 * scale, 33.00567626953125 * scale, 96.44320678710938 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 3 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60.00567626953125 * scale, 99.35227966308594 * scale); ctx.bezierCurveTo(70.00567626953125 * scale, 82.35227966308594 * scale, 85.00567626953125 * scale, 86.35227966308594 * scale, 87.00567626953125 * scale, 97.35227966308594 * scale); ctx.bezierCurveTo(89.00567626953125 * scale, 101.35227966308594 * scale, 88.00567626953125 * scale, 105.35227966308594 * scale, 87.00567626953125 * scale, 110.35227966308594 * scale); ctx.bezierCurveTo(89.00567626953125 * scale, 111.35227966308594 * scale, 91.00567626953125 * scale, 112.35227966308594 * scale, 93.00567626953125 * scale, 115.35227966308594 * scale); ctx.bezierCurveTo(96.00567626953125 * scale, 111.35227966308594 * scale, 99.00567626953125 * scale, 111.35227966308594 * scale, 100.00567626953125 * scale, 110.35227966308594 * scale); ctx.bezierCurveTo(98.00567626953125 * scale, 92.35227966308594 * scale, 103.00567626953125 * scale, 86.35227966308594 * scale, 113.00567626953125 * scale, 89.35227966308594 * scale); ctx.bezierCurveTo(122.00567626953125 * scale, 92.35227966308594 * scale, 123.00567626953125 * scale, 94.35227966308594 * scale, 126.00567626953125 * scale, 98.35227966308594 * scale); ctx.bezierCurveTo(124.00567626953125 * scale, 102.35227966308594 * scale, 123.00567626953125 * scale, 103.35227966308594 * scale, 121.00567626953125 * scale, 104.35227966308594 * scale); ctx.bezierCurveTo(124.00567626953125 * scale, 105.35227966308594 * scale, 126.00567626953125 * scale, 107.35227966308594 * scale, 129.00567626953125 * scale, 111.35227966308594 * scale); ctx.bezierCurveTo(115.00567626953125 * scale, 122.35227966308594 * scale, 113.00567626953125 * scale, 145.35227966308594 * scale, 100.00567626953125 * scale, 152.35227966308594 * scale); ctx.bezierCurveTo(91.00567626953125 * scale, 158.35227966308594 * scale, 83.00567626953125 * scale, 149.35227966308594 * scale, 76.00567626953125 * scale, 138.35227966308594 * scale); ctx.bezierCurveTo(67.00567626953125 * scale, 114.35227966308594 * scale, 63.00567626953125 * scale, 113.35227966308594 * scale, 59.00567626953125 * scale, 111.35227966308594 * scale); ctx.bezierCurveTo(62.00567626953125 * scale, 107.35227966308594 * scale, 64.00567626953125 * scale, 105.35227966308594 * scale, 66.00567626953125 * scale, 104.35227966308594 * scale); ctx.bezierCurveTo(63.00567626953125 * scale, 100.35227966308594 * scale, 62.00567626953125 * scale, 100.35227966308594 * scale, 60.00567626953125 * scale, 99.35227966308594 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.00567626953125 * scale, 95.44320678710938 * scale); ctx.bezierCurveTo(42.00567626953125 * scale, 87.44320678710938 * scale, 48.00567626953125 * scale, 51.443206787109375 * scale, 74.00567626953125 * scale, 47.443206787109375 * scale); ctx.bezierCurveTo(100.00567626953125 * scale, 42.443206787109375 * scale, 118.00567626953125 * scale, 49.443206787109375 * scale, 131.00567626953125 * scale, 55.443206787109375 * scale); ctx.bezierCurveTo(140.00567626953125 * scale, 70.44320678710938 * scale, 145.00567626953125 * scale, 87.44320678710938 * scale, 152.00567626953125 * scale, 94.44320678710938 * scale); ctx.bezierCurveTo(149.00567626953125 * scale, 99.44320678710938 * scale, 147.00567626953125 * scale, 98.44320678710938 * scale, 141.00567626953125 * scale, 101.44320678710938 * scale); ctx.bezierCurveTo(147.00567626953125 * scale, 108.44320678710938 * scale, 147.00567626953125 * scale, 111.44320678710938 * scale, 147.00567626953125 * scale, 112.44320678710938 * scale); ctx.bezierCurveTo(143.00567626953125 * scale, 112.44320678710938 * scale, 141.00567626953125 * scale, 112.44320678710938 * scale, 137.00567626953125 * scale, 111.44320678710938 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 117.44320678710938 * scale, 138.00567626953125 * scale, 120.44320678710938 * scale, 138.00567626953125 * scale, 124.44320678710938 * scale); ctx.bezierCurveTo(125.00567626953125 * scale, 107.44320678710938 * scale, 121.00567626953125 * scale, 124.44320678710938 * scale, 110.00567626953125 * scale, 141.44320678710938 * scale); ctx.bezierCurveTo(102.00567626953125 * scale, 158.44320678710938 * scale, 89.00567626953125 * scale, 158.44320678710938 * scale, 80.00567626953125 * scale, 144.44320678710938 * scale); ctx.bezierCurveTo(61.00567626953125 * scale, 111.44320678710938 * scale, 56.00567626953125 * scale, 117.44320678710938 * scale, 48.00567626953125 * scale, 120.44320678710938 * scale); ctx.bezierCurveTo(46.00567626953125 * scale, 118.44320678710938 * scale, 47.00567626953125 * scale, 112.44320678710938 * scale, 48.00567626953125 * scale, 107.44320678710938 * scale); ctx.bezierCurveTo(43.00567626953125 * scale, 111.44320678710938 * scale, 40.00567626953125 * scale, 111.44320678710938 * scale, 37.00567626953125 * scale, 110.44320678710938 * scale); ctx.bezierCurveTo(39.50567626953125 * scale, 104.94320678710938 * scale, 39.50567626953125 * scale, 104.94320678710938 * scale, 42.00567626953125 * scale, 99.44320678710938 * scale); ctx.bezierCurveTo(33.00567626953125 * scale, 99.44320678710938 * scale, 33.00567626953125 * scale, 98.44320678710938 * scale, 33.00567626953125 * scale, 96.44320678710938 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 3 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51.00567626953125 * scale, 72.53409576416016 * scale); ctx.bezierCurveTo(48.00567626953125 * scale, 56.534095764160156 * scale, 48.00567626953125 * scale, 49.534095764160156 * scale, 54.00567626953125 * scale, 35.534095764160156 * scale); ctx.bezierCurveTo(58.00567626953125 * scale, 26.534095764160156 * scale, 65.00567626953125 * scale, 27.534095764160156 * scale, 73.00567626953125 * scale, 40.534095764160156 * scale); ctx.bezierCurveTo(81.00567626953125 * scale, 49.534095764160156 * scale, 82.00567626953125 * scale, 50.534095764160156 * scale, 83.00567626953125 * scale, 51.534095764160156 * scale); fill_path(ctx, color[1], color[2], 3 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.00567626953125 * scale, 50.53410339355469 * scale); ctx.bezierCurveTo(112.00567626953125 * scale, 48.53410339355469 * scale, 125.00567626953125 * scale, 21.534103393554688 * scale, 132.00567626953125 * scale, 33.53410339355469 * scale); ctx.bezierCurveTo(138.00567626953125 * scale, 42.53410339355469 * scale, 140.00567626953125 * scale, 64.53410339355469 * scale, 136.00567626953125 * scale, 75.53410339355469 * scale); fill_path(ctx, color[1], color[2], 3 * scale); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57.00567626953125 * scale, 68.53410339355469 * scale); ctx.bezierCurveTo(63.00567626953125 * scale, 69.53410339355469 * scale, 69.00567626953125 * scale, 66.53410339355469 * scale, 73.00567626953125 * scale, 60.53410339355469 * scale); ctx.bezierCurveTo(66.00567626953125 * scale, 47.53410339355469 * scale, 61.00567626953125 * scale, 42.53410339355469 * scale, 58.00567626953125 * scale, 49.53410339355469 * scale); ctx.bezierCurveTo(56.00567626953125 * scale, 59.53410339355469 * scale, 56.00567626953125 * scale, 64.53410339355469 * scale, 57.00567626953125 * scale, 67.53410339355469 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115.00567626953125 * scale, 59.715911865234375 * scale); ctx.bezierCurveTo(119.00567626953125 * scale, 48.715911865234375 * scale, 126.00567626953125 * scale, 41.715911865234375 * scale, 129.00567626953125 * scale, 48.715911865234375 * scale); ctx.bezierCurveTo(131.00567626953125 * scale, 56.715911865234375 * scale, 133.00567626953125 * scale, 71.71591186523438 * scale, 127.00567626953125 * scale, 68.71591186523438 * scale); ctx.bezierCurveTo(120.00567626953125 * scale, 67.71591186523438 * scale, 114.00567626953125 * scale, 59.715911865234375 * scale, 116.00567626953125 * scale, 58.715911865234375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#161515 #a01f26 circle(ctx, 77 * scale, 107 * scale, 6 * scale); fill_path(ctx, color[2]); //#161515 #a01f26 circle(ctx, 110 * scale, 107 * scale, 6 * scale); fill_path(ctx, color[2]); //#161515 #a01f26 circle(ctx, 75 * scale, 105 * scale, 3 * scale); fill_path(ctx, color[4]); //#161515 #a01f26 circle(ctx, 108 * scale, 105 * scale, 3 * scale); fill_path(ctx, color[4]); //#161515 #a01f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88.00567626953125 * scale, 141.4431915283203 * scale); ctx.bezierCurveTo(93.00567626953125 * scale, 137.4431915283203 * scale, 96.00567626953125 * scale, 138.4431915283203 * scale, 100.00567626953125 * scale, 141.4431915283203 * scale); ctx.bezierCurveTo(103.00567626953125 * scale, 143.4431915283203 * scale, 101.00567626953125 * scale, 149.4431915283203 * scale, 95.00567626953125 * scale, 148.4431915283203 * scale); ctx.bezierCurveTo(85.00567626953125 * scale, 148.4431915283203 * scale, 86.00567626953125 * scale, 145.4431915283203 * scale, 88.00567626953125 * scale, 142.4431915283203 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#161515 #a01f26 return can; } function create_meat(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 55; var h = scale * 55; var shadow = scale * 8; var width = scale * 4; can.width = w; can.height = h; ctx.translate(-65 * scale, -55 * scale + shadow); /* Draw meat */ ctx.globalAlpha = 1; ctx.beginPath(); ctx.moveTo(95 * scale, 60 * scale); ctx.bezierCurveTo(107 * scale, 62 * scale, 110 * scale, 73 * scale, 107 * scale, 79 * scale); ctx.bezierCurveTo(104 * scale, 85 * scale, 85 * scale, 93 * scale, 81 * scale, 88 * scale); ctx.bezierCurveTo(74 * scale, 80 * scale, 85 * scale, 60 * scale, 95 * scale, 60 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 3); /* Draw bone */ ctx.globalAlpha = 1; ctx.beginPath(); ctx.moveTo(91 * scale, 70 * scale); ctx.bezierCurveTo(91 * scale, 75 * scale, 100 * scale, 76 * scale, 100 * scale, 73 * scale); ctx.bezierCurveTo(100 * scale, 69 * scale, 89 * scale, 65 * scale, 91 * scale, 70 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 3); return can; } function create_hurt_spider(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 238 * scale; can.height = 230 * scale; /* Draw shadow */ ctx.translate(-93 * scale, -110 * scale); /* Draw body */ circle(ctx, 213.5 * scale, 256.75 * scale, 75 * scale); fill_path(ctx, color); circle(ctx, 213.5 * scale, 175.75 * scale, 25 * scale); fill_path(ctx, color); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156.5 * scale, 137.75 * scale); ctx.bezierCurveTo(170.5 * scale, 173.75 * scale, 195.5 * scale, 177.75 * scale, 209.5 * scale, 177.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217.5 * scale, 178.75 * scale); ctx.bezierCurveTo(251.5 * scale, 177.75 * scale, 263.5 * scale, 153.75 * scale, 270.5 * scale, 140.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.5 * scale, 124.75 * scale); ctx.bezierCurveTo(153.5 * scale, 185.75 * scale, 198.5 * scale, 185.75 * scale, 213.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 183.75 * scale); ctx.bezierCurveTo(265.5 * scale, 192.75 * scale, 293.5 * scale, 141.75 * scale, 297.5 * scale, 124.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.5 * scale, 213.75 * scale); ctx.bezierCurveTo(151.5 * scale, 190.75 * scale, 198.5 * scale, 184.75 * scale, 210.5 * scale, 184.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212.5 * scale, 187.75 * scale); ctx.bezierCurveTo(258.5 * scale, 182.75 * scale, 286.5 * scale, 194.75 * scale, 314.5 * scale, 206.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102.5 * scale, 258.75 * scale); ctx.bezierCurveTo(142.5 * scale, 200.75 * scale, 193.5 * scale, 194.75 * scale, 211.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 192.75 * scale); ctx.bezierCurveTo(276.5 * scale, 194.75 * scale, 306.5 * scale, 233.75 * scale, 316.5 * scale, 246.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(219.5 * scale, 158.75 * scale); ctx.bezierCurveTo(226.5 * scale, 159.75 * scale, 227.5 * scale, 147.75 * scale, 219.5 * scale, 145.75 * scale); ctx.closePath(); ctx.lineWidth = 10 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210.5 * scale, 160.75 * scale); ctx.bezierCurveTo(203.5 * scale, 159.75 * scale, 199.5 * scale, 146.75 * scale, 210.5 * scale, 145.75 * scale); ctx.closePath(); ctx.lineWidth = 10 * scale; ctx.strokeStyle = color; //#000000; ctx.stroke(); return can; } function create_spider(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 238 * scale; can.height = 230 * scale; /* Draw shadow */ ctx.translate(-93 * scale, -110 * scale + 5 * scale); ctx.globalAlpha = 0.3; /* Draw body */ circle(ctx, 213.5 * scale, 256.75 * scale, 75 * scale); fill_path(ctx, color[5]); circle(ctx, 213.5 * scale, 175.75 * scale, 25 * scale); fill_path(ctx, color[5]); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156.5 * scale, 137.75 * scale); ctx.bezierCurveTo(170.5 * scale, 173.75 * scale, 195.5 * scale, 177.75 * scale, 209.5 * scale, 177.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217.5 * scale, 178.75 * scale); ctx.bezierCurveTo(251.5 * scale, 177.75 * scale, 263.5 * scale, 153.75 * scale, 270.5 * scale, 140.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.5 * scale, 124.75 * scale); ctx.bezierCurveTo(153.5 * scale, 185.75 * scale, 198.5 * scale, 185.75 * scale, 213.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 183.75 * scale); ctx.bezierCurveTo(265.5 * scale, 192.75 * scale, 293.5 * scale, 141.75 * scale, 297.5 * scale, 124.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.5 * scale, 213.75 * scale); ctx.bezierCurveTo(151.5 * scale, 190.75 * scale, 198.5 * scale, 184.75 * scale, 210.5 * scale, 184.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212.5 * scale, 187.75 * scale); ctx.bezierCurveTo(258.5 * scale, 182.75 * scale, 286.5 * scale, 194.75 * scale, 314.5 * scale, 206.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102.5 * scale, 258.75 * scale); ctx.bezierCurveTo(142.5 * scale, 200.75 * scale, 193.5 * scale, 194.75 * scale, 211.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 192.75 * scale); ctx.bezierCurveTo(276.5 * scale, 194.75 * scale, 306.5 * scale, 233.75 * scale, 316.5 * scale, 246.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[5]; //#000000; ctx.stroke(); ctx.translate(0, -5); ctx.globalAlpha = 1; /* Draw body */ circle(ctx, 213.5 * scale, 256.75 * scale, 75 * scale); fill_path(ctx, color[3]); circle(ctx, 213.5 * scale, 175.75 * scale, 25 * scale); fill_path(ctx, color[3]); /* Draw mandibul */ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(219.5 * scale, 158.75 * scale); ctx.bezierCurveTo(226.5 * scale, 159.75 * scale, 227.5 * scale, 147.75 * scale, 219.5 * scale, 145.75 * scale); ctx.closePath(); ctx.lineWidth = 10 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210.5 * scale, 160.75 * scale); ctx.bezierCurveTo(203.5 * scale, 159.75 * scale, 199.5 * scale, 146.75 * scale, 210.5 * scale, 145.75 * scale); ctx.closePath(); ctx.lineWidth = 10 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(219.5 * scale, 158.75 * scale); ctx.bezierCurveTo(226.5 * scale, 159.75 * scale, 227.5 * scale, 147.75 * scale, 219.5 * scale, 145.75 * scale); ctx.closePath(); ctx.fillStyle = color[0]; //#000000 ctx.fill(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210.5 * scale, 160.75 * scale); ctx.bezierCurveTo(203.5 * scale, 159.75 * scale, 199.5 * scale, 146.75 * scale, 210.5 * scale, 145.75 * scale); ctx.closePath(); ctx.fillStyle = color[0]; //#000000 ctx.fill(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156.5 * scale, 137.75 * scale); ctx.bezierCurveTo(170.5 * scale, 173.75 * scale, 195.5 * scale, 177.75 * scale, 209.5 * scale, 177.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217.5 * scale, 178.75 * scale); ctx.bezierCurveTo(251.5 * scale, 177.75 * scale, 263.5 * scale, 153.75 * scale, 270.5 * scale, 140.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.5 * scale, 124.75 * scale); ctx.bezierCurveTo(153.5 * scale, 185.75 * scale, 198.5 * scale, 185.75 * scale, 213.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 183.75 * scale); ctx.bezierCurveTo(265.5 * scale, 192.75 * scale, 293.5 * scale, 141.75 * scale, 297.5 * scale, 124.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.5 * scale, 213.75 * scale); ctx.bezierCurveTo(151.5 * scale, 190.75 * scale, 198.5 * scale, 184.75 * scale, 210.5 * scale, 184.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212.5 * scale, 187.75 * scale); ctx.bezierCurveTo(258.5 * scale, 182.75 * scale, 286.5 * scale, 194.75 * scale, 314.5 * scale, 206.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102.5 * scale, 258.75 * scale); ctx.bezierCurveTo(142.5 * scale, 200.75 * scale, 193.5 * scale, 194.75 * scale, 211.5 * scale, 185.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 192.75 * scale); ctx.bezierCurveTo(276.5 * scale, 194.75 * scale, 306.5 * scale, 233.75 * scale, 316.5 * scale, 246.75 * scale); ctx.lineWidth = 17 * scale; ctx.strokeStyle = color[3]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156.5 * scale, 137.75 * scale); ctx.bezierCurveTo(170.5 * scale, 173.75 * scale, 195.5 * scale, 177.75 * scale, 209.5 * scale, 177.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217.5 * scale, 178.75 * scale); ctx.bezierCurveTo(251.5 * scale, 177.75 * scale, 263.5 * scale, 153.75 * scale, 270.5 * scale, 140.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.5 * scale, 124.75 * scale); ctx.bezierCurveTo(153.5 * scale, 185.75 * scale, 198.5 * scale, 185.75 * scale, 213.5 * scale, 185.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 183.75 * scale); ctx.bezierCurveTo(265.5 * scale, 192.75 * scale, 293.5 * scale, 141.75 * scale, 297.5 * scale, 124.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.5 * scale, 213.75 * scale); ctx.bezierCurveTo(151.5 * scale, 190.75 * scale, 198.5 * scale, 184.75 * scale, 210.5 * scale, 184.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212.5 * scale, 187.75 * scale); ctx.bezierCurveTo(258.5 * scale, 182.75 * scale, 286.5 * scale, 194.75 * scale, 314.5 * scale, 206.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102.5 * scale, 258.75 * scale); ctx.bezierCurveTo(142.5 * scale, 200.75 * scale, 193.5 * scale, 194.75 * scale, 211.5 * scale, 185.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 192.75 * scale); ctx.bezierCurveTo(276.5 * scale, 194.75 * scale, 306.5 * scale, 233.75 * scale, 316.5 * scale, 246.75 * scale); ctx.lineWidth = 8 * scale; ctx.strokeStyle = color[0]; //#000000; ctx.stroke(); /*Draw body*/ circle(ctx, 213.5 * scale, 256.75 * scale, 70 * scale); fill_path(ctx, color[0]); circle(ctx, 213.5 * scale, 175.75 * scale, 20 * scale); fill_path(ctx, color[0]); /* Draw eyes */ circle(ctx, 222 * scale, 166 * scale, 5 * scale); ctx.fillStyle = color[2]; //#ffffff ctx.fill(); circle(ctx, 205 * scale, 166 * scale, 5 * scale); ctx.fillStyle = color[2]; //#ffffff ctx.fill(); circle(ctx, 206.2 * scale, 167 * scale, 2.5 * scale); ctx.fillStyle = color[4]; ctx.fill(); circle(ctx, 223.2 * scale, 167 * scale, 2.5 * scale); ctx.fillStyle = color[4]; ctx.fill(); /* Draw ink */ ctx.save(); ctx.translate(213.5 * scale, 293.75 * scale); ctx.rotate(0.76); round_rect(ctx, -22 * scale, -21 * scale, 44 * scale, 42 * scale, 6 * scale); ctx.restore(); ctx.fillStyle = color[1]; //#d1300d ctx.fill(); ctx.save(); ctx.translate(212.5 * scale, 258.25 * scale); ctx.rotate(0.8); round_rect(ctx, -15 * scale, -14.5 * scale, 30 * scale, 29 * scale, 6 * scale); ctx.restore(); ctx.fillStyle = color[1]; //#d1300d ctx.fill(); return can; } function create_web(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 450 * scale; can.height = 470 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(226.5 * scale, 91.546875 * scale); ctx.bezierCurveTo(254.5 * scale, 115.546875 * scale, 261.5 * scale, 115.546875 * scale, 294.5 * scale, 109.546875 * scale); ctx.bezierCurveTo(299.5 * scale, 141.546875 * scale, 315.5 * scale, 151.546875 * scale, 344.5 * scale, 158.546875 * scale); ctx.bezierCurveTo(330.5 * scale, 195.546875 * scale, 341.5 * scale, 207.546875 * scale, 361.5 * scale, 226.546875 * scale); ctx.bezierCurveTo(331.5 * scale, 251.546875 * scale, 335.5 * scale, 270.546875 * scale, 342.5 * scale, 295.546875 * scale); ctx.bezierCurveTo(300.5 * scale, 296.546875 * scale, 293.5 * scale, 325.546875 * scale, 292.5 * scale, 344.546875 * scale); ctx.bezierCurveTo(257.5 * scale, 326.546875 * scale, 242.5 * scale, 338.546875 * scale, 224.5 * scale, 361.546875 * scale); ctx.bezierCurveTo(200.5 * scale, 329.546875 * scale, 180.5 * scale, 334.546875 * scale, 155.5 * scale, 341.546875 * scale); ctx.bezierCurveTo(146.5 * scale, 307.546875 * scale, 140.5 * scale, 302.546875 * scale, 107.5 * scale, 292.546875 * scale); ctx.bezierCurveTo(117.5 * scale, 253.546875 * scale, 109.5 * scale, 244.546875 * scale, 89.5 * scale, 224.546875 * scale); ctx.bezierCurveTo(118.5 * scale, 191.546875 * scale, 114.5 * scale, 182.546875 * scale, 108.5 * scale, 156.546875 * scale); ctx.bezierCurveTo(143.5 * scale, 149.546875 * scale, 150.5 * scale, 136.546875 * scale, 157.5 * scale, 106.546875 * scale); ctx.bezierCurveTo(202.5 * scale, 120.546875 * scale, 211.5 * scale, 103.546875 * scale, 228.5 * scale, 91.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224.5 * scale, 129.546875 * scale); ctx.bezierCurveTo(247.5 * scale, 147.546875 * scale, 252.5 * scale, 143.546875 * scale, 274.5 * scale, 141.546875 * scale); ctx.bezierCurveTo(279.5 * scale, 163.546875 * scale, 289.5 * scale, 168.546875 * scale, 311.5 * scale, 178.546875 * scale); ctx.bezierCurveTo(301.5 * scale, 199.546875 * scale, 307.5 * scale, 213.546875 * scale, 323.5 * scale, 226.546875 * scale); ctx.bezierCurveTo(303.5 * scale, 240.546875 * scale, 303.5 * scale, 255.546875 * scale, 312.5 * scale, 275.546875 * scale); ctx.bezierCurveTo(281.5 * scale, 278.546875 * scale, 276.5 * scale, 291.546875 * scale, 272.5 * scale, 313.546875 * scale); ctx.bezierCurveTo(248.5 * scale, 301.546875 * scale, 239.5 * scale, 310.546875 * scale, 224.5 * scale, 324.546875 * scale); ctx.bezierCurveTo(211.5 * scale, 304.546875 * scale, 199.5 * scale, 301.546875 * scale, 176.5 * scale, 309.546875 * scale); ctx.bezierCurveTo(165.5 * scale, 276.546875 * scale, 159.5 * scale, 275.546875 * scale, 138.5 * scale, 274.546875 * scale); ctx.bezierCurveTo(148.5 * scale, 248.546875 * scale, 140.5 * scale, 237.546875 * scale, 125.5 * scale, 225.546875 * scale); ctx.bezierCurveTo(145.5 * scale, 205.546875 * scale, 146.5 * scale, 195.546875 * scale, 142.5 * scale, 176.546875 * scale); ctx.bezierCurveTo(173.5 * scale, 164.546875 * scale, 173.5 * scale, 155.546875 * scale, 178.5 * scale, 140.546875 * scale); ctx.bezierCurveTo(214.5 * scale, 143.546875 * scale, 214.5 * scale, 135.546875 * scale, 226.5 * scale, 129.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224.5 * scale, 160.546875 * scale); ctx.bezierCurveTo(236.5 * scale, 168.546875 * scale, 239.5 * scale, 168.546875 * scale, 258.5 * scale, 168.546875 * scale); ctx.bezierCurveTo(261.5 * scale, 185.546875 * scale, 268.5 * scale, 187.546875 * scale, 282.5 * scale, 192.546875 * scale); ctx.bezierCurveTo(277.5 * scale, 208.546875 * scale, 283.5 * scale, 216.546875 * scale, 289.5 * scale, 228.546875 * scale); ctx.bezierCurveTo(277.5 * scale, 243.546875 * scale, 280.5 * scale, 253.546875 * scale, 281.5 * scale, 260.546875 * scale); ctx.bezierCurveTo(264.5 * scale, 260.546875 * scale, 259.5 * scale, 269.546875 * scale, 256.5 * scale, 283.546875 * scale); ctx.bezierCurveTo(244.5 * scale, 276.546875 * scale, 232.5 * scale, 283.546875 * scale, 223.5 * scale, 291.546875 * scale); ctx.bezierCurveTo(213.5 * scale, 276.546875 * scale, 205.5 * scale, 278.546875 * scale, 190.5 * scale, 281.546875 * scale); ctx.bezierCurveTo(181.5 * scale, 262.546875 * scale, 173.5 * scale, 259.546875 * scale, 165.5 * scale, 258.546875 * scale); ctx.bezierCurveTo(169.5 * scale, 239.546875 * scale, 167.5 * scale, 233.546875 * scale, 157.5 * scale, 225.546875 * scale); ctx.bezierCurveTo(169.5 * scale, 208.546875 * scale, 170.5 * scale, 203.546875 * scale, 168.5 * scale, 192.546875 * scale); ctx.bezierCurveTo(181.5 * scale, 187.546875 * scale, 188.5 * scale, 179.546875 * scale, 192.5 * scale, 168.546875 * scale); ctx.bezierCurveTo(216.5 * scale, 170.546875 * scale, 218.5 * scale, 163.546875 * scale, 225.5 * scale, 160.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(205.5 * scale, 194.546875 * scale); ctx.bezierCurveTo(216.5 * scale, 192.546875 * scale, 219.5 * scale, 191.546875 * scale, 225.5 * scale, 185.546875 * scale); ctx.bezierCurveTo(232.5 * scale, 193.546875 * scale, 237.5 * scale, 191.546875 * scale, 246.5 * scale, 192.546875 * scale); ctx.bezierCurveTo(249.5 * scale, 202.546875 * scale, 253.5 * scale, 205.546875 * scale, 258.5 * scale, 207.546875 * scale); ctx.bezierCurveTo(259.5 * scale, 222.546875 * scale, 256.5 * scale, 223.546875 * scale, 265.5 * scale, 226.546875 * scale); ctx.bezierCurveTo(256.5 * scale, 231.546875 * scale, 255.5 * scale, 241.546875 * scale, 259.5 * scale, 248.546875 * scale); ctx.bezierCurveTo(250.5 * scale, 245.546875 * scale, 245.5 * scale, 252.546875 * scale, 243.5 * scale, 260.546875 * scale); ctx.bezierCurveTo(234.5 * scale, 256.546875 * scale, 229.5 * scale, 258.546875 * scale, 223.5 * scale, 265.546875 * scale); ctx.bezierCurveTo(218.5 * scale, 255.546875 * scale, 213.5 * scale, 257.546875 * scale, 204.5 * scale, 261.546875 * scale); ctx.bezierCurveTo(203.5 * scale, 251.546875 * scale, 198.5 * scale, 248.546875 * scale, 189.5 * scale, 244.546875 * scale); ctx.bezierCurveTo(194.5 * scale, 237.546875 * scale, 192.5 * scale, 231.546875 * scale, 184.5 * scale, 225.546875 * scale); ctx.bezierCurveTo(191.5 * scale, 211.546875 * scale, 192.5 * scale, 209.546875 * scale, 190.5 * scale, 204.546875 * scale); ctx.bezierCurveTo(200.5 * scale, 204.546875 * scale, 204.5 * scale, 198.546875 * scale, 207.5 * scale, 194.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149.5 * scale, 93.546875 * scale); ctx.bezierCurveTo(287.5 * scale, 332.546875 * scale, 226 * scale, 225.546875 * scale, 302.5 * scale, 357.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224.5 * scale, 66.546875 * scale); ctx.bezierCurveTo(224.5 * scale, 223.546875 * scale, 224.5 * scale, 223.546875 * scale, 224.5 * scale, 380.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(302.5 * scale, 88.546875 * scale); ctx.bezierCurveTo(222.5 * scale, 227.546875 * scale, 222.5 * scale, 227.546875 * scale, 142.5 * scale, 366.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(361.5 * scale, 147.546875 * scale); ctx.bezierCurveTo(223 * scale, 226.546875 * scale, 223 * scale, 226.546875 * scale, 84.5 * scale, 305.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(379.5 * scale, 225.546875 * scale); ctx.bezierCurveTo(221 * scale, 225.546875 * scale, 221 * scale, 225.546875 * scale, 62.5 * scale, 225.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90.5 * scale, 147.546875 * scale); ctx.bezierCurveTo(226.5 * scale, 226.546875 * scale, 226.5 * scale, 226.546875 * scale, 362.5 * scale, 305.546875 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4); //#000000 return can; } function create_dead_box(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.save(); ctx.translate(202.5 * scale, 147.5 * scale); round_rect(ctx, -96.5 * scale, -21.5 * scale, 193 * scale, 193 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 12 * scale); //#ad8850 #714f24 ctx.save(); ctx.translate(202.5 * scale, 190.5 * scale); round_rect(ctx, 96.5 * scale, -21.5 * scale, -193 * scale, 43 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 12 * scale); //#9f7d4a #714f24 #ad8850 #714f24 ctx.save(); ctx.save(); ctx.translate(202.5 * scale, 233.5 * scale); round_rect(ctx, -96.5 * scale, -20.5 * scale, 193 * scale, 41 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b69461 #714f24 ctx.save(); ctx.translate(202.5 * scale, 275 * scale); round_rect(ctx, 96.5 * scale, -21 * scale, -193 * scale, 42 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 12 * scale); //#ad8850 #714f24 ctx.save(); ctx.translate(201 * scale, 212 * scale); ctx.rotate(8.64); round_rect(ctx, -116 * scale, -22 * scale, 232 * scale, 44 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b79562 #714f24 ctx.save(); ctx.translate(203.5 * scale, 121.5 * scale); round_rect(ctx, -115.5 * scale, -20.5 * scale, 231 * scale, 41 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b38e59 #714f24 ctx.save(); ctx.translate(203.5 * scale, 299 * scale); round_rect(ctx, -115.5 * scale, -20 * scale, 231 * scale, 40 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b38e59 #714f24 ctx.save(); ctx.translate(298.5 * scale, 210 * scale); round_rect(ctx, -20.5 * scale, -109 * scale, 41 * scale, 218 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b38e59 #714f24 ctx.save(); ctx.translate(108.5 * scale, 210 * scale); round_rect(ctx, -20.5 * scale, -109 * scale, 41 * scale, 218 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 12 * scale); //#b38e59 #714f24 ctx.save(); ctx.translate(204 * scale, 121.5 * scale); round_rect(ctx, -92 * scale, -9.5 * scale, 184 * scale, 19 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[3], 10 * scale); //#b38e59 #b38e59 ctx.save(); ctx.translate(197 * scale, 299 * scale); round_rect(ctx, 85 * scale, -9 * scale, -170 * scale, 18 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[3], 10 * scale); //#b38e59 #b38e59 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(94 * scale, 317 * scale); ctx.bezierCurveTo(110.5 * scale, 299.5 * scale, 110.5 * scale, 299.5 * scale, 127 * scale, 282 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 12 * scale); //#714f24 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(279 * scale, 142 * scale); ctx.bezierCurveTo(296.5 * scale, 125.5 * scale, 296.5 * scale, 125.5 * scale, 314 * scale, 109 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 12 * scale); //#714f24 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 106 * scale); ctx.bezierCurveTo(110.5 * scale, 124 * scale, 110.5 * scale, 124 * scale, 128 * scale, 142 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 12 * scale); //#714f24 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(281 * scale, 282 * scale); ctx.bezierCurveTo(296 * scale, 297.5 * scale, 296 * scale, 297.5 * scale, 311 * scale, 313 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 12 * scale); //ad8850 #714f24 9f7d4a b38e59 if (i == 0) { ctx.scale(2, 2); ctx.translate(-7 * scale, 55 * scale); ctx.rotate(-0.5); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60 * scale, 47 * scale); ctx.bezierCurveTo(81 * scale, 46 * scale, 85 * scale, 47 * scale, 83 * scale, 63 * scale); ctx.bezierCurveTo(83 * scale, 72 * scale, 83 * scale, 75 * scale, 72 * scale, 73 * scale); ctx.bezierCurveTo(68 * scale, 80 * scale, 69 * scale, 82 * scale, 66 * scale, 73 * scale); ctx.bezierCurveTo(62 * scale, 81 * scale, 61 * scale, 82 * scale, 59 * scale, 73 * scale); ctx.bezierCurveTo(54 * scale, 81 * scale, 55 * scale, 81 * scale, 52 * scale, 74 * scale); ctx.bezierCurveTo(38 * scale, 76 * scale, 41 * scale, 74 * scale, 40 * scale, 66 * scale); ctx.bezierCurveTo(38 * scale, 45 * scale, 39 * scale, 49 * scale, 59 * scale, 47 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 5 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(68 * scale, 54 * scale); ctx.bezierCurveTo(75 * scale, 54 * scale, 77 * scale, 62 * scale, 71 * scale, 64 * scale); ctx.bezierCurveTo(62 * scale, 65 * scale, 63 * scale, 54 * scale, 68 * scale, 54 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 55 * scale); ctx.bezierCurveTo(57 * scale, 55 * scale, 58 * scale, 65 * scale, 52 * scale, 65 * scale); ctx.bezierCurveTo(44 * scale, 66 * scale, 44 * scale, 54 * scale, 50 * scale, 55 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#5f461f } else if (i == 1) { ctx.scale(0.6, 0.6); ctx.translate(185 * scale, 165 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(108 * scale, 56 * scale); ctx.bezierCurveTo(136 * scale, 58 * scale, 203 * scale, 69 * scale, 234 * scale, 75 * scale); ctx.bezierCurveTo(246 * scale, 77 * scale, 247 * scale, 78 * scale, 245 * scale, 90 * scale); ctx.bezierCurveTo(238 * scale, 143 * scale, 228 * scale, 197 * scale, 214 * scale, 259 * scale); ctx.bezierCurveTo(212 * scale, 267 * scale, 209 * scale, 270 * scale, 189 * scale, 268 * scale); ctx.bezierCurveTo(142 * scale, 264 * scale, 106 * scale, 260 * scale, 75 * scale, 253 * scale); ctx.bezierCurveTo(60 * scale, 250 * scale, 64 * scale, 250 * scale, 66 * scale, 221 * scale); ctx.bezierCurveTo(71 * scale, 168 * scale, 87 * scale, 95 * scale, 98 * scale, 67 * scale); ctx.bezierCurveTo(101 * scale, 57 * scale, 103 * scale, 56 * scale, 106 * scale, 56 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 20 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(112 * scale, 72 * scale); ctx.bezierCurveTo(132 * scale, 73 * scale, 227 * scale, 85 * scale, 226 * scale, 91 * scale); ctx.bezierCurveTo(231 * scale, 89 * scale, 217 * scale, 196 * scale, 200 * scale, 250 * scale); ctx.bezierCurveTo(196 * scale, 254 * scale, 175 * scale, 249 * scale, 166 * scale, 249 * scale); ctx.bezierCurveTo(91 * scale, 241 * scale, 82 * scale, 236 * scale, 83 * scale, 232 * scale); ctx.bezierCurveTo(90 * scale, 144 * scale, 108 * scale, 71 * scale, 111 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 13 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(132 * scale, 117 * scale); ctx.bezierCurveTo(171 * scale, 86 * scale, 191 * scale, 101 * scale, 188 * scale, 134 * scale); ctx.bezierCurveTo(185 * scale, 154 * scale, 170 * scale, 158 * scale, 153 * scale, 158 * scale); ctx.bezierCurveTo(143 * scale, 172 * scale, 146 * scale, 180 * scale, 147 * scale, 193 * scale); fill_path(ctx, undefined, color[0], 20 * scale); //#9ed7dc #5f461f circle(ctx, 142 * scale, 221 * scale, 16.1245154965971 * scale); fill_path(ctx, color[0]); //#5f461f } return can; } function create_SANDWICH(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(101 * scale, 255 * scale); ctx.bezierCurveTo(113 * scale, 243 * scale, 179 * scale, 210 * scale, 219 * scale, 196 * scale); ctx.bezierCurveTo(252 * scale, 203 * scale, 288 * scale, 215 * scale, 318 * scale, 233 * scale); ctx.bezierCurveTo(304 * scale, 254 * scale, 258 * scale, 273 * scale, 215 * scale, 296 * scale); ctx.bezierCurveTo(161 * scale, 287 * scale, 119 * scale, 270 * scale, 102 * scale, 257 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 14 * scale); //#dfd6bc #7b5139 bf8d50 834e49 602820 d7ccaa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99 * scale, 258 * scale); ctx.bezierCurveTo(99 * scale, 272.5 * scale, 99 * scale, 272.5 * scale, 99 * scale, 287 * scale); ctx.bezierCurveTo(166 * scale, 319 * scale, 193 * scale, 320 * scale, 212 * scale, 324 * scale); ctx.bezierCurveTo(292 * scale, 286 * scale, 312 * scale, 271 * scale, 319 * scale, 263 * scale); ctx.bezierCurveTo(320 * scale, 249 * scale, 320 * scale, 241 * scale, 318 * scale, 234 * scale); ctx.bezierCurveTo(300 * scale, 254 * scale, 254 * scale, 277 * scale, 216 * scale, 294 * scale); ctx.bezierCurveTo(190 * scale, 296 * scale, 135 * scale, 276 * scale, 102 * scale, 258 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 14 * scale); // #bf8d50 #7b5139 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212 * scale, 323 * scale); ctx.bezierCurveTo(211.5 * scale, 310.5 * scale, 211.5 * scale, 310.5 * scale, 211 * scale, 298 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 14 * scale); //#7b5139 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212 * scale, 210 * scale); ctx.bezierCurveTo(286 * scale, 210 * scale, 331 * scale, 254 * scale, 212 * scale, 276 * scale); ctx.bezierCurveTo(108 * scale, 276 * scale, 112 * scale, 222 * scale, 213 * scale, 208 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 14 * scale); //#834e49 #602820 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 200 * scale); ctx.bezierCurveTo(126 * scale, 216 * scale, 177 * scale, 232 * scale, 213 * scale, 237 * scale); ctx.bezierCurveTo(266 * scale, 218 * scale, 288 * scale, 209 * scale, 318 * scale, 190 * scale); ctx.bezierCurveTo(269 * scale, 164 * scale, 239 * scale, 158 * scale, 214 * scale, 153 * scale); ctx.bezierCurveTo(148 * scale, 172 * scale, 131 * scale, 182 * scale, 98 * scale, 200 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 14 * scale); //#dfd6bc #7b5139 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(97 * scale, 204 * scale); ctx.bezierCurveTo(97 * scale, 215.5 * scale, 97 * scale, 215.5 * scale, 97 * scale, 227 * scale); ctx.bezierCurveTo(148 * scale, 250 * scale, 179 * scale, 256 * scale, 212 * scale, 262 * scale); ctx.bezierCurveTo(268 * scale, 244 * scale, 281 * scale, 233 * scale, 318 * scale, 214 * scale); ctx.bezierCurveTo(318 * scale, 203 * scale, 318 * scale, 203 * scale, 318 * scale, 192 * scale); ctx.bezierCurveTo(250 * scale, 225 * scale, 236 * scale, 231 * scale, 214 * scale, 239 * scale); ctx.bezierCurveTo(158 * scale, 228 * scale, 126 * scale, 215 * scale, 99 * scale, 201 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 14 * scale); //#bf8d50 #7b5139 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212 * scale, 260 * scale); ctx.bezierCurveTo(212 * scale, 251.5 * scale, 212 * scale, 251.5 * scale, 212 * scale, 243 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 14 * scale); //#7b5139 circle(ctx, 161 * scale, 201 * scale, 13 * scale); fill_path(ctx, color[5]); //#d7ccaa circle(ctx, 216 * scale, 205 * scale, 8.06225774829855 * scale); fill_path(ctx, color[5]); //#d7ccaa circle(ctx, 216 * scale, 175 * scale, 6.708203932499369 * scale); fill_path(ctx, color[5]); //#d7ccaa circle(ctx, 271 * scale, 191 * scale, 5.0990195135927845 * scale); fill_path(ctx, color[5]); //#d7ccaa circle(ctx, 206 * scale, 180 * scale, 11.180339887498949 * scale); fill_path(ctx, color[5]); //#d7ccaa return can; } function create_scales(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.save(); ctx.translate(85 * scale, 237 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 54.585977194239184 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#537280 #2e3e47 ctx.save(); ctx.translate(178 * scale, 238 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 52.53573932334064 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#537280 #2e3e47 ctx.save(); ctx.translate(270 * scale, 239 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 53.58058329516393 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(222 * scale, 312 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 52.53573932334064 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(317 * scale, 159 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 57.63465889766331 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(223.5 * scale, 139.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 51.66236541235796 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(132.5 * scale, 137.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 52.009614495783374 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(178.5 * scale, 58.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 53.16013544000805 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(177.5 * scale, 216.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 50 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(84.5 * scale, 215.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 54 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(319.5 * scale, 138.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 55.08175741568164 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(269.5 * scale, 216.0625 * scale); ctx.rotate(1.5707963267948966); round_regular_polygon(ctx, 6, 54.589376255824725 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.save(); ctx.translate(221.5 * scale, 293.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 49.49747468305833 * scale, 1 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12 * scale); //#7597a6 #2e3e47 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(221.5 * scale, 342.0625 * scale); ctx.bezierCurveTo(221.5 * scale, 350.5625 * scale, 221.5 * scale, 350.5625 * scale, 221.5 * scale, 359.0625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#2e3e47 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.5 * scale, 270.0625 * scale); ctx.bezierCurveTo(84.5 * scale, 277.0625 * scale, 84.5 * scale, 277.0625 * scale, 84.5 * scale, 284.0625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#2e3e47 ctx.save(); ctx.translate(84.5 * scale, 215.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(177.5 * scale, 215.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(222.5 * scale, 294.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(270.5 * scale, 216.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(320.5 * scale, 134.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(224.5 * scale, 138.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(133.5 * scale, 137.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 ctx.save(); ctx.translate(178.5 * scale, 56.0625 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 6, 30 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3]); //#8ca9b5 return can; } function create_wheat(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 52 * scale; can.height = 65 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9.833328247070312 * scale, 12.078125 * scale); ctx.bezierCurveTo(15.333328247070312 * scale, 28.078125 * scale, 15.333328247070312 * scale, 28.078125 * scale, 20.833328247070312 * scale, 44.078125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(7.8333282470703125 * scale, 20.078125 * scale); ctx.bezierCurveTo(16.833328247070312 * scale, 32.578125 * scale, 16.833328247070312 * scale, 32.578125 * scale, 25.833328247070312 * scale, 45.078125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(23.833328247070312 * scale, 26.078125 * scale); ctx.bezierCurveTo(25.833328247070312 * scale, 11.078125 * scale, 16.833328247070312 * scale, 8.078125 * scale, 14.833328247070312 * scale, 7.078125 * scale); ctx.bezierCurveTo(11.833328247070312 * scale, 17.078125 * scale, 13.833328247070312 * scale, 22.078125 * scale, 23.833328247070312 * scale, 27.078125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35.83332824707031 * scale, 8.078125 * scale); ctx.bezierCurveTo(34.83332824707031 * scale, 27.078125 * scale, 28.833328247070312 * scale, 27.078125 * scale, 23.833328247070312 * scale, 28.078125 * scale); ctx.bezierCurveTo(21.833328247070312 * scale, 14.078125 * scale, 26.833328247070312 * scale, 11.078125 * scale, 35.83332824707031 * scale, 8.078125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25.833328247070312 * scale, 39.078125 * scale); ctx.bezierCurveTo(20.833328247070312 * scale, 29.078125 * scale, 14.833328247070312 * scale, 27.078125 * scale, 5.8333282470703125 * scale, 29.078125 * scale); ctx.bezierCurveTo(9.833328247070312 * scale, 39.078125 * scale, 16.833328247070312 * scale, 42.078125 * scale, 25.833328247070312 * scale, 40.078125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.83332824707031 * scale, 23.078125 * scale); ctx.bezierCurveTo(35.83332824707031 * scale, 35.078125 * scale, 31.833328247070312 * scale, 37.078125 * scale, 25.833328247070312 * scale, 36.078125 * scale); ctx.bezierCurveTo(25.833328247070312 * scale, 24.078125 * scale, 33.83332824707031 * scale, 21.078125 * scale, 42.83332824707031 * scale, 23.078125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(23.833328247070312 * scale, 24.078125 * scale); ctx.bezierCurveTo(20.833328247070312 * scale, 34.078125 * scale, 23.833328247070312 * scale, 40.078125 * scale, 27.833328247070312 * scale, 43.078125 * scale); ctx.bezierCurveTo(37.33332824707031 * scale, 28.078125 * scale, 37.33332824707031 * scale, 28.078125 * scale, 46.83332824707031 * scale, 13.078125 * scale); fill_path(ctx, undefined, color[1], 2 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(38.83332824707031 * scale, 14.078125 * scale); ctx.bezierCurveTo(34.83332824707031 * scale, 24.078125 * scale, 34.83332824707031 * scale, 24.078125 * scale, 30.833328247070312 * scale, 34.078125 * scale); fill_path(ctx, undefined, color[1], 2 * scale); //#000000 return can; } function create_windmill(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 173 * scale; ctx.translate(5 * scale, 5 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); ctx.rotate(0.32); round_regular_polygon(ctx, 7, 42.15447781671598 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); ctx.rotate(0.32); round_regular_polygon(ctx, 7, 42.15447781671598 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#3a928d #55bb9f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); ctx.rotate(0.28); round_regular_polygon(ctx, 7, 30.463092423455635 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); ctx.rotate(0.28); round_regular_polygon(ctx, 7, 30.463092423455635 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 4 * scale); //#3a928d #55bb9f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); circle(ctx, 86.25 * scale, 84.953125 * scale, 18.867962264113206 * scale); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); circle(ctx, 86.25 * scale, 84.953125 * scale, 18.867962264113206 * scale); fill_path(ctx, color[5], color[6], 4 * scale); //#3a928d #55bb9f return can; } function create_windmill_wing(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 173 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(85.25 * scale, 82.953125 * scale); ctx.bezierCurveTo(98.25 * scale, 46.453125 * scale, 98.25 * scale, 46.453125 * scale, 111.25 * scale, 9.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4 * scale); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111.25 * scale, 8.953125 * scale); ctx.bezierCurveTo(117.75 * scale, 12.453125 * scale, 117.75 * scale, 12.453125 * scale, 124.25 * scale, 15.953125 * scale); ctx.bezierCurveTo(113.75 * scale, 39.953125 * scale, 113.75 * scale, 39.953125 * scale, 103.25 * scale, 63.953125 * scale); ctx.bezierCurveTo(97.75 * scale, 64.953125 * scale, 97.75 * scale, 64.953125 * scale, 92.25 * scale, 65.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111.25 * scale, 8.953125 * scale); ctx.bezierCurveTo(117.75 * scale, 12.453125 * scale, 117.75 * scale, 12.453125 * scale, 124.25 * scale, 15.953125 * scale); ctx.bezierCurveTo(113.75 * scale, 39.953125 * scale, 113.75 * scale, 39.953125 * scale, 103.25 * scale, 63.953125 * scale); ctx.bezierCurveTo(97.75 * scale, 64.953125 * scale, 97.75 * scale, 64.953125 * scale, 92.25 * scale, 65.953125 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(85.25 * scale, 82.953125 * scale); ctx.bezierCurveTo(98.25 * scale, 46.453125 * scale, 98.25 * scale, 46.453125 * scale, 111.25 * scale, 9.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4 * scale); //#3a928d #55bb9f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.25 * scale, 84.953125 * scale); ctx.bezierCurveTo(123.75 * scale, 100.453125 * scale, 123.75 * scale, 100.453125 * scale, 160.25 * scale, 115.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4 * scale); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(160.25 * scale, 114.953125 * scale); ctx.bezierCurveTo(156.25 * scale, 122.453125 * scale, 156.25 * scale, 122.453125 * scale, 152.25 * scale, 129.953125 * scale); ctx.bezierCurveTo(130.25 * scale, 117.953125 * scale, 130.25 * scale, 117.953125 * scale, 108.25 * scale, 105.953125 * scale); ctx.bezierCurveTo(107.25 * scale, 98.953125 * scale, 107.25 * scale, 98.953125 * scale, 106.25 * scale, 91.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(160.25 * scale, 114.953125 * scale); ctx.bezierCurveTo(156.25 * scale, 122.453125 * scale, 156.25 * scale, 122.453125 * scale, 152.25 * scale, 129.953125 * scale); ctx.bezierCurveTo(130.25 * scale, 117.953125 * scale, 130.25 * scale, 117.953125 * scale, 108.25 * scale, 105.953125 * scale); ctx.bezierCurveTo(107.25 * scale, 98.953125 * scale, 107.25 * scale, 98.953125 * scale, 106.25 * scale, 91.953125 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.25 * scale, 84.953125 * scale); ctx.bezierCurveTo(123.75 * scale, 100.453125 * scale, 123.75 * scale, 100.453125 * scale, 160.25 * scale, 115.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4 * scale); //#3a928d #55bb9f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(83.25 * scale, 83.953125 * scale); ctx.bezierCurveTo(47.75 * scale, 68.453125 * scale, 47.75 * scale, 68.453125 * scale, 12.25 * scale, 52.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4 * scale); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13.25 * scale, 53.953125 * scale); ctx.bezierCurveTo(17.25 * scale, 46.953125 * scale, 17.25 * scale, 46.953125 * scale, 21.25 * scale, 39.953125 * scale); ctx.bezierCurveTo(42.75 * scale, 52.453125 * scale, 42.75 * scale, 52.453125 * scale, 64.25 * scale, 64.953125 * scale); ctx.bezierCurveTo(64.25 * scale, 70.953125 * scale, 64.25 * scale, 70.953125 * scale, 64.25 * scale, 76.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13.25 * scale, 53.953125 * scale); ctx.bezierCurveTo(17.25 * scale, 46.953125 * scale, 17.25 * scale, 46.953125 * scale, 21.25 * scale, 39.953125 * scale); ctx.bezierCurveTo(42.75 * scale, 52.453125 * scale, 42.75 * scale, 52.453125 * scale, 64.25 * scale, 64.953125 * scale); ctx.bezierCurveTo(64.25 * scale, 70.953125 * scale, 64.25 * scale, 70.953125 * scale, 64.25 * scale, 76.953125 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(83.25 * scale, 83.953125 * scale); ctx.bezierCurveTo(47.75 * scale, 68.453125 * scale, 47.75 * scale, 68.453125 * scale, 12.25 * scale, 52.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4 * scale); //#3a928d #55bb9f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.25 * scale, 86.953125 * scale); ctx.bezierCurveTo(70.25 * scale, 123.953125 * scale, 70.25 * scale, 123.953125 * scale, 56.25 * scale, 160.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 4 * scale); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56.25 * scale, 159.953125 * scale); ctx.bezierCurveTo(49.25 * scale, 155.453125 * scale, 49.25 * scale, 155.453125 * scale, 42.25 * scale, 150.953125 * scale); ctx.bezierCurveTo(54.25 * scale, 127.953125 * scale, 54.25 * scale, 127.953125 * scale, 66.25 * scale, 104.953125 * scale); ctx.bezierCurveTo(71.25 * scale, 104.953125 * scale, 71.25 * scale, 104.953125 * scale, 76.25 * scale, 104.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56.25 * scale, 159.953125 * scale); ctx.bezierCurveTo(49.25 * scale, 155.453125 * scale, 49.25 * scale, 155.453125 * scale, 42.25 * scale, 150.953125 * scale); ctx.bezierCurveTo(54.25 * scale, 127.953125 * scale, 54.25 * scale, 127.953125 * scale, 66.25 * scale, 104.953125 * scale); ctx.bezierCurveTo(71.25 * scale, 104.953125 * scale, 71.25 * scale, 104.953125 * scale, 76.25 * scale, 104.953125 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#3a928d #55bb9f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.25 * scale, 86.953125 * scale); ctx.bezierCurveTo(70.25 * scale, 123.953125 * scale, 70.25 * scale, 123.953125 * scale, 56.25 * scale, 160.953125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4 * scale); //#3a928d #55bb9f return can; } function create_windmill_head(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 173 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); round_regular_polygon(ctx, 7, 9.848857801796104 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#3a928d #55bb9f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(86.25 * scale, 84.953125 * scale); round_regular_polygon(ctx, 7, 9.848857801796104 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[8], color[9], 4 * scale); //#3a928d #55bb9f return can; } function create_cord(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 75; var h = scale * 55; var width = scale * 4; can.width = w; can.height = h; /* Draw cord */ ctx.translate(-30 * scale, -40 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(67 * scale, 56 * scale, 72 * scale, 71 * scale, 72 * scale, 71 * scale); ctx.bezierCurveTo(72 * scale, 71 * scale, 84 * scale, 70 * scale, 75 * scale, 82 * scale); ctx.bezierCurveTo(70 * scale, 88 * scale, 61 * scale, 89 * scale, 58 * scale, 89 * scale); ctx.bezierCurveTo(55 * scale, 89 * scale, 40 * scale, 89 * scale, 46 * scale, 77 * scale); ctx.bezierCurveTo(46 * scale, 77 * scale, 43 * scale, 63 * scale, 43 * scale, 63 * scale); ctx.bezierCurveTo(35 * scale, 61 * scale, 35 * scale, 53 * scale, 42 * scale, 47 * scale); ctx.bezierCurveTo(48 * scale, 42 * scale, 62 * scale, 41 * scale, 66 * scale, 43 * scale); ctx.bezierCurveTo(70 * scale, 45 * scale, 72 * scale, 48 * scale, 67 * scale, 56 * scale); ctx.closePath(); fill_path(ctx, color[0]); ctx.beginPath(); ctx.bezierCurveTo(68 * scale, 61 * scale, 72 * scale, 76 * scale, 72 * scale, 76 * scale); ctx.bezierCurveTo(65 * scale, 85 * scale, 61 * scale, 85 * scale, 49 * scale, 83 * scale); ctx.bezierCurveTo(49 * scale, 83 * scale, 44 * scale, 63 * scale, 44 * scale, 63 * scale); ctx.bezierCurveTo(54 * scale, 63 * scale, 60 * scale, 63 * scale, 67 * scale, 55 * scale); ctx.closePath(); fill_path(ctx, color[1]); ctx.beginPath(); ctx.moveTo(69 * scale, 65 * scale); ctx.bezierCurveTo(70 * scale, 61 * scale, 81 * scale, 66 * scale, 86 * scale, 66 * scale); ctx.bezierCurveTo(90 * scale, 66 * scale, 97 * scale, 63 * scale, 97 * scale, 56 * scale); ctx.bezierCurveTo(97 * scale, 50 * scale, 93 * scale, 47 * scale, 88 * scale, 44 * scale); fill_path(ctx, false, color[1], 2); ctx.beginPath(); ctx.moveTo(50 * scale, 48 * scale); ctx.bezierCurveTo(43 * scale, 52 * scale, 50 * scale, 54 * scale, 51 * scale, 54 * scale); ctx.bezierCurveTo(54 * scale, 54 * scale, 59 * scale, 52 * scale, 59 * scale, 49 * scale); ctx.bezierCurveTo(59 * scale, 48 * scale, 55 * scale, 46 * scale, 50 * scale, 48 * scale); fill_path(ctx, color[2]); return can; } function create_bandage(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 195; var h = scale * 190; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw bandage 1 */ var round = scale * 10; var wf = scale * 35; var hf = scale * 150; var wf2 = wf / 2; var hf2 = hf / 2; var width = scale * 4; ctx.translate(x - 5 * scale, y - 5 * scale); ctx.rotate(-window.Math.PI / 1.25); ctx.globalAlpha = 1; round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); /* Draw bandage 2 & coton */ ctx.translate(0, 0); ctx.rotate(window.Math.PI / 3); ctx.globalAlpha = 1; round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); ctx.translate(0, 5); round_rect(ctx, -wf2 / 2, -hf2 / 2, wf / 2, hf / 3, round - 2); fill_path(ctx, color[1]); return can; } function create_craft_button(scale, funs, subscale, color, alpha) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 70; var h = scale * 70; var r = scale * 10; var shadow = scale * 5; can.width = w; can.height = h + shadow; for (var i = 0; i < funs.length; i++) { var f = funs[i]; ctx.globalAlpha = f.a; var img = f.f(subscale, false, f.c); ctx.save(); ctx.translate(w / 2 + f.x * scale, h / 2 + f.y * scale); ctx.rotate(f.r); ctx.drawImage(img, -img.width / 2, -img.height / 2); ctx.restore(); } var buttons = []; for (var i = 0; i < color.length; i++) { var tmpcan = window.document.createElement("canvas"); var tmpctx = tmpcan.getContext("2d"); tmpcan.width = w; tmpcan.height = h + shadow; /* Draw shadow of the button */ tmpctx.globalAlpha = alpha / 2; if (i == 2) round_rect(tmpctx, 0, shadow, w, h, r); else round_rect(tmpctx, 0, 0, w, h + shadow, r); fill_path(tmpctx, "#081a19"); /* Draw button */ tmpctx.globalAlpha = alpha; if (i == 2) round_rect(tmpctx, 0, shadow, w, h, r); else round_rect(tmpctx, 0, 0, w, h, r); fill_path(tmpctx, color[i]); tmpctx.globalAlpha = 1; if (i == 2) tmpctx.drawImage(can, 0, shadow); else tmpctx.drawImage(can, 0, 0); buttons.push(CTI(tmpcan)); } return buttons; } function create_bread_oven_ui(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 149 * scale; can.height = 356 * scale; ctx.save(); ctx.translate(74.5 * scale, 177.5 * scale); round_rect(ctx, -57.5 * scale, -161.5 * scale, 100 * scale, 323 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 4 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(74.5 * scale, 177.5 * scale); round_rect(ctx, -57.5 * scale, 50.5 * scale, 100 * scale, 105 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[6], color[1], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 125 * scale); ctx.bezierCurveTo(74.5 * scale, 125 * scale, 118 * scale, 125 * scale, 118 * scale, 125 * scale); ctx.closePath(); fill_path(ctx, color[2], color[2], 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 120 * scale); ctx.bezierCurveTo(74.5 * scale, 120 * scale, 74.5 * scale, 120 * scale, 118 * scale, 120 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 228 * scale); ctx.bezierCurveTo(75 * scale, 228.5 * scale, 118 * scale, 228.5 * scale, 118 * scale, 229 * scale); ctx.closePath(); fill_path(ctx, color[2], color[2], 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 224 * scale); ctx.bezierCurveTo(75 * scale, 224 * scale, 118 * scale, 224 * scale, 118 * scale, 224 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 10 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(72 * scale, 68.5 * scale); round_rect(ctx, -41.5 * scale, -36.5 * scale, 73 * scale, 73 * scale, 13 * scale); ctx.restore(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.save(); ctx.translate(72 * scale, 175.5 * scale); round_rect(ctx, -41.5 * scale, -38.5 * scale, 73 * scale, 73 * scale, 13 * scale); ctx.restore(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.save(); ctx.translate(72 * scale, 279.5 * scale); round_rect(ctx, -41.5 * scale, -40.5 * scale, 73 * scale, 73 * scale, 13 * scale); ctx.restore(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 338 * scale); ctx.bezierCurveTo(75 * scale, 338 * scale, 118 * scale, 338 * scale, 118 * scale, 338 * scale); ctx.closePath(); fill_path(ctx, color[2], color[2], 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 333 * scale); ctx.bezierCurveTo(75 * scale, 333 * scale, 118 * scale, 333 * scale, 118 * scale, 333 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 10 * scale); //#9e793d #5f461f return can; } function create_big_fire_wood(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 193; var h = scale * 198; var x = 140 * scale; var y = 90 * scale; can.width = w; can.height = h; /* Draw wood 1 */ var round = scale * 10; var wf = scale * 25; var hf = scale * 180; var wf2 = wf / 2; var hf2 = hf / 2; var width = scale * 4; ctx.translate(-25 * scale, 1 * scale); ctx.translate(x, y); ctx.rotate(-window.Math.PI / 5); round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); ctx.translate(-30 * scale, -25 * scale); ctx.rotate(window.Math.PI / 3); round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); ctx.translate(35 * scale, 30 * scale); ctx.rotate(window.Math.PI / 3); round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); return can; } function create_fire(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 145; var h = scale * 145; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw fire 1 */ var r = scale * 70; ctx.translate(x, y); ctx.globalAlpha = 0.4; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); /* Draw fire 2 */ var r = scale * 50; ctx.translate(0, 0); ctx.globalAlpha = 0.8; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); /* Draw fire 3 */ var r = scale * 35; ctx.translate(0, 0); ctx.globalAlpha = 0.8; circle(ctx, 0, 0, r); fill_path(ctx, color[1]); /* Draw fire 4 */ var r = scale * 20; ctx.translate(0, 0); ctx.globalAlpha = 0.8; circle(ctx, 0, 0, r); fill_path(ctx, color[2]); return can; } function create_wood_fire(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 135; var h = scale * 190; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw wood 1 */ var round = scale * 10; var wf = scale * 25; var hf = scale * 180; var wf2 = wf / 2; var hf2 = hf / 2; var width = scale * 4; ctx.translate(x, y); ctx.rotate(-window.Math.PI / 5); ctx.globalAlpha = 1; round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); ctx.translate(0, 0); ctx.rotate(window.Math.PI / 5); ctx.globalAlpha = 1; round_rect(ctx, -wf2, -hf2, wf, hf, round); fill_path(ctx, color[0], color[1], width); return can; } function create_ground_fire(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 205; var h = scale * 205; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw halo ground */ var r = scale * 100; ctx.translate(x, y); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); return can; } function create_halo_fire(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 370; var h = scale * 370; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw halo light */ var r = scale * 180; ctx.globalAlpha = 0.2; circle(ctx, x, y, r); fill_path(ctx, color[0]); return can; } // Christmas function create_elf_hat(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 155 * scale; can.height = 127 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 8 * scale); ctx.translate(-7 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 68 * scale); ctx.bezierCurveTo(86 * scale, 64 * scale, 117 * scale, 66 * scale, 134 * scale, 68 * scale); ctx.bezierCurveTo(152 * scale, 69 * scale, 165 * scale, 86 * scale, 152 * scale, 104 * scale); ctx.bezierCurveTo(146 * scale, 87 * scale, 122 * scale, 89 * scale, 98 * scale, 90 * scale); ctx.bezierCurveTo(64 * scale, 89 * scale, 41 * scale, 91 * scale, 36 * scale, 106 * scale); ctx.bezierCurveTo(19 * scale, 92 * scale, 31 * scale, 71 * scale, 54 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -8 * scale); ctx.translate(7 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 28 * scale); ctx.bezierCurveTo(39 * scale, 30 * scale, 37 * scale, 31 * scale, 40 * scale, 32 * scale); ctx.bezierCurveTo(22 * scale, 45 * scale, 26 * scale, 58 * scale, 29 * scale, 66 * scale); ctx.bezierCurveTo(86.5 * scale, 65 * scale, 86.5 * scale, 65 * scale, 144 * scale, 64 * scale); ctx.bezierCurveTo(151 * scale, 42 * scale, 132 * scale, 20 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(106 * scale, 12 * scale, 89 * scale, 0 * scale, 73 * scale, 3 * scale); ctx.bezierCurveTo(51 * scale, 5 * scale, 36 * scale, 20 * scale, 25 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 41 * scale); ctx.bezierCurveTo(49 * scale, 31 * scale, 53 * scale, 29 * scale, 62 * scale, 27 * scale); ctx.bezierCurveTo(59 * scale, 24 * scale, 56 * scale, 25 * scale, 53 * scale, 24 * scale); ctx.bezierCurveTo(67 * scale, 15 * scale, 84 * scale, 12 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(107 * scale, 11 * scale, 96 * scale, 6 * scale, 85 * scale, 2 * scale); ctx.bezierCurveTo(59 * scale, 3 * scale, 54 * scale, 7 * scale, 40 * scale, 17 * scale); ctx.bezierCurveTo(32.5 * scale, 22.5 * scale, 32.5 * scale, 22.5 * scale, 25 * scale, 28 * scale); ctx.bezierCurveTo(32 * scale, 30 * scale, 32 * scale, 30 * scale, 39 * scale, 32 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 28 * scale); ctx.bezierCurveTo(39 * scale, 30 * scale, 37 * scale, 31 * scale, 40 * scale, 32 * scale); ctx.bezierCurveTo(22 * scale, 45 * scale, 26 * scale, 58 * scale, 29 * scale, 66 * scale); ctx.bezierCurveTo(86.5 * scale, 65 * scale, 86.5 * scale, 65 * scale, 144 * scale, 64 * scale); ctx.bezierCurveTo(151 * scale, 42 * scale, 132 * scale, 20 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(106 * scale, 12 * scale, 89 * scale, 0 * scale, 73 * scale, 3 * scale); ctx.bezierCurveTo(51 * scale, 5 * scale, 36 * scale, 20 * scale, 25 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 4 * scale); //#9e793d #5f461f circle(ctx, 18 * scale, 38 * scale, 14.866068747318506 * scale); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 30 * scale); ctx.bezierCurveTo(27 * scale, 38 * scale, 25 * scale, 50 * scale, 26 * scale, 60 * scale); ctx.bezierCurveTo(36.5 * scale, 58.5 * scale, 36.5 * scale, 58.5 * scale, 47 * scale, 57 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.translate(-7 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 74 * scale); ctx.bezierCurveTo(38 * scale, 77.5 * scale, 38 * scale, 77.5 * scale, 49 * scale, 81 * scale); ctx.bezierCurveTo(54.5 * scale, 75.5 * scale, 54.5 * scale, 75.5 * scale, 60 * scale, 70 * scale); ctx.bezierCurveTo(64 * scale, 72 * scale, 64 * scale, 72 * scale, 68 * scale, 74 * scale); ctx.bezierCurveTo(80.5 * scale, 67.5 * scale, 80.5 * scale, 67.5 * scale, 93 * scale, 61 * scale); ctx.bezierCurveTo(104.5 * scale, 68 * scale, 104.5 * scale, 68 * scale, 116 * scale, 75 * scale); ctx.bezierCurveTo(120.5 * scale, 72.5 * scale, 120.5 * scale, 72.5 * scale, 125 * scale, 70 * scale); ctx.bezierCurveTo(129 * scale, 75 * scale, 129 * scale, 75 * scale, 133 * scale, 80 * scale); ctx.bezierCurveTo(145.5 * scale, 76.5 * scale, 145.5 * scale, 76.5 * scale, 158 * scale, 73 * scale); ctx.bezierCurveTo(158 * scale, 87 * scale, 158 * scale, 93 * scale, 155 * scale, 95 * scale); ctx.bezierCurveTo(152.5 * scale, 96 * scale, 152.5 * scale, 96 * scale, 150 * scale, 97 * scale); ctx.bezierCurveTo(121 * scale, 85 * scale, 108 * scale, 86 * scale, 93 * scale, 85 * scale); ctx.bezierCurveTo(64 * scale, 85 * scale, 52 * scale, 95 * scale, 38 * scale, 99 * scale); ctx.bezierCurveTo(36 * scale, 98.5 * scale, 36 * scale, 98.5 * scale, 34 * scale, 98 * scale); ctx.bezierCurveTo(25 * scale, 98 * scale, 27 * scale, 91 * scale, 27 * scale, 76 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 6 * scale); //#c5232c #a92d2d return can; } // Winter function create_christmas_hat(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 155 * scale; can.height = 127 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 8 * scale); ctx.translate(-7 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 68 * scale); ctx.bezierCurveTo(86 * scale, 64 * scale, 117 * scale, 66 * scale, 134 * scale, 68 * scale); ctx.bezierCurveTo(152 * scale, 69 * scale, 165 * scale, 86 * scale, 152 * scale, 104 * scale); ctx.bezierCurveTo(146 * scale, 87 * scale, 122 * scale, 89 * scale, 98 * scale, 90 * scale); ctx.bezierCurveTo(64 * scale, 89 * scale, 41 * scale, 91 * scale, 36 * scale, 106 * scale); ctx.bezierCurveTo(19 * scale, 92 * scale, 31 * scale, 71 * scale, 54 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -8 * scale); ctx.translate(7 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 28 * scale); ctx.bezierCurveTo(39 * scale, 30 * scale, 37 * scale, 31 * scale, 40 * scale, 32 * scale); ctx.bezierCurveTo(22 * scale, 45 * scale, 26 * scale, 58 * scale, 29 * scale, 66 * scale); ctx.bezierCurveTo(86.5 * scale, 65 * scale, 86.5 * scale, 65 * scale, 144 * scale, 64 * scale); ctx.bezierCurveTo(151 * scale, 42 * scale, 132 * scale, 20 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(106 * scale, 12 * scale, 89 * scale, 0 * scale, 73 * scale, 3 * scale); ctx.bezierCurveTo(51 * scale, 5 * scale, 36 * scale, 20 * scale, 25 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 41 * scale); ctx.bezierCurveTo(49 * scale, 31 * scale, 53 * scale, 29 * scale, 62 * scale, 27 * scale); ctx.bezierCurveTo(59 * scale, 24 * scale, 56 * scale, 25 * scale, 53 * scale, 24 * scale); ctx.bezierCurveTo(67 * scale, 15 * scale, 84 * scale, 12 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(107 * scale, 11 * scale, 96 * scale, 6 * scale, 85 * scale, 2 * scale); ctx.bezierCurveTo(59 * scale, 3 * scale, 54 * scale, 7 * scale, 40 * scale, 17 * scale); ctx.bezierCurveTo(32.5 * scale, 22.5 * scale, 32.5 * scale, 22.5 * scale, 25 * scale, 28 * scale); ctx.bezierCurveTo(32 * scale, 30 * scale, 32 * scale, 30 * scale, 39 * scale, 32 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 28 * scale); ctx.bezierCurveTo(39 * scale, 30 * scale, 37 * scale, 31 * scale, 40 * scale, 32 * scale); ctx.bezierCurveTo(22 * scale, 45 * scale, 26 * scale, 58 * scale, 29 * scale, 66 * scale); ctx.bezierCurveTo(86.5 * scale, 65 * scale, 86.5 * scale, 65 * scale, 144 * scale, 64 * scale); ctx.bezierCurveTo(151 * scale, 42 * scale, 132 * scale, 20 * scale, 120 * scale, 16 * scale); ctx.bezierCurveTo(106 * scale, 12 * scale, 89 * scale, 0 * scale, 73 * scale, 3 * scale); ctx.bezierCurveTo(51 * scale, 5 * scale, 36 * scale, 20 * scale, 25 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 4 * scale); //#9e793d #5f461f circle(ctx, 18 * scale, 38 * scale, 14.866068747318506 * scale); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 30 * scale); ctx.bezierCurveTo(27 * scale, 38 * scale, 25 * scale, 50 * scale, 26 * scale, 60 * scale); ctx.bezierCurveTo(36.5 * scale, 58.5 * scale, 36.5 * scale, 58.5 * scale, 47 * scale, 57 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.translate(-7 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 68 * scale); ctx.bezierCurveTo(86 * scale, 64 * scale, 117 * scale, 66 * scale, 134 * scale, 68 * scale); ctx.bezierCurveTo(152 * scale, 69 * scale, 165 * scale, 86 * scale, 152 * scale, 104 * scale); ctx.bezierCurveTo(146 * scale, 87 * scale, 122 * scale, 89 * scale, 98 * scale, 90 * scale); ctx.bezierCurveTo(64 * scale, 89 * scale, 41 * scale, 91 * scale, 36 * scale, 106 * scale); ctx.bezierCurveTo(19 * scale, 92 * scale, 31 * scale, 71 * scale, 54 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f return can; } function create_zombie_hand(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 220; var h = scale * 220; var r = scale * 32; var width = scale * 4; can.width = w; can.height = h; /* Draw hand of the player */ ctx.translate(w / 2, h / 2 + 10 * scale); ctx.globalAlpha = 0.5; circle(ctx, 0, 0, r); fill_path(ctx, color[0], color[0]); /* Draw hand of the player */ ctx.translate(0, -8 * scale); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[1], color[2], width); return can; } function create_hand(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 40; var h = scale * 40; var r = scale * 16; var width = scale * 4; can.width = w; can.height = h; /* Draw hand of the player */ ctx.translate(w / 2, h / 2); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[0], color[1], width); return can; } function create_hand_shadow(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 220; var h = scale * 220; var r = scale * 16; can.width = w; can.height = h; /* Draw hand shadow of the player */ ctx.translate(w / 2, h / 2); ctx.globalAlpha = 0.5; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); ctx.globalAlpha = 1; return can; } function create_apricot_tree(scale, color, rotate, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 210; var h = scale * 205; var round = scale * 30; var shadow = scale * 20; var wt = scale * 200; var ht = scale * 180; var wt2 = wt / 2; var ht2 = ht / 2; var width = 4; can.width = w; can.height = h; can.width = 419 * scale; can.height = 412 * scale; if (i == 1) { ctx.save(); ctx.translate(10 * scale, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(117.99996948242188 * scale, 216.40621948242188 * scale); ctx.bezierCurveTo(86.99996948242188 * scale, 221.40621948242188 * scale, 74.99996948242188 * scale, 217.40621948242188 * scale, 60.999969482421875 * scale, 205.40621948242188 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(114.99996948242188 * scale, 227.40621948242188 * scale); ctx.bezierCurveTo(90.99996948242188 * scale, 233.40621948242188 * scale, 66.99996948242188 * scale, 228.40621948242188 * scale, 43.999969482421875 * scale, 225.40621948242188 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110.99996948242188 * scale, 236.40621948242188 * scale); ctx.bezierCurveTo(94.99996948242188 * scale, 244.40621948242188 * scale, 79.99996948242188 * scale, 249.40621948242188 * scale, 60.999969482421875 * scale, 249.40621948242188 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111.99996948242188 * scale, 206.29513549804688 * scale); ctx.bezierCurveTo(91.99996948242188 * scale, 206.29513549804688 * scale, 87.99996948242188 * scale, 201.29513549804688 * scale, 79.99996948242188 * scale, 192.29513549804688 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(109.99996948242188 * scale, 249.18402099609375 * scale); ctx.bezierCurveTo(97.99996948242188 * scale, 263.18402099609375 * scale, 85.99996948242188 * scale, 271.18402099609375 * scale, 65.99996948242188 * scale, 277.18402099609375 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.99996948242188 * scale, 192.18402099609375 * scale); ctx.bezierCurveTo(99.49996948242188 * scale, 197.68402099609375 * scale, 99.49996948242188 * scale, 197.68402099609375 * scale, 92.99996948242188 * scale, 203.18402099609375 * scale); ctx.bezierCurveTo(95.99996948242188 * scale, 213.18402099609375 * scale, 95.99996948242188 * scale, 215.18402099609375 * scale, 89.99996948242188 * scale, 219.18402099609375 * scale); ctx.bezierCurveTo(91.99996948242188 * scale, 223.18402099609375 * scale, 91.99996948242188 * scale, 226.18402099609375 * scale, 87.99996948242188 * scale, 230.18402099609375 * scale); ctx.bezierCurveTo(89.99996948242188 * scale, 234.18402099609375 * scale, 91.99996948242188 * scale, 237.18402099609375 * scale, 90.99996948242188 * scale, 244.18402099609375 * scale); ctx.bezierCurveTo(96.99996948242188 * scale, 252.18402099609375 * scale, 96.99996948242188 * scale, 256.18402099609375 * scale, 95.99996948242188 * scale, 262.18402099609375 * scale); ctx.bezierCurveTo(106.49996948242188 * scale, 264.18402099609375 * scale, 106.49996948242188 * scale, 264.18402099609375 * scale, 116.99996948242188 * scale, 266.18402099609375 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(104.99996948242188 * scale, 183.29513549804688 * scale); ctx.bezierCurveTo(99.99996948242188 * scale, 193.29513549804688 * scale, 93.99996948242188 * scale, 195.29513549804688 * scale, 89.99996948242188 * scale, 201.29513549804688 * scale); ctx.bezierCurveTo(86.99996948242188 * scale, 212.29513549804688 * scale, 85.99996948242188 * scale, 214.29513549804688 * scale, 81.99996948242188 * scale, 215.29513549804688 * scale); ctx.bezierCurveTo(83.99996948242188 * scale, 223.29513549804688 * scale, 83.99996948242188 * scale, 227.29513549804688 * scale, 79.99996948242188 * scale, 230.29513549804688 * scale); ctx.bezierCurveTo(83.99996948242188 * scale, 235.29513549804688 * scale, 84.99996948242188 * scale, 240.29513549804688 * scale, 79.99996948242188 * scale, 246.29513549804688 * scale); ctx.bezierCurveTo(86.99996948242188 * scale, 251.29513549804688 * scale, 91.99996948242188 * scale, 256.2951354980469 * scale, 89.99996948242188 * scale, 266.2951354980469 * scale); ctx.bezierCurveTo(102.99996948242188 * scale, 269.2951354980469 * scale, 102.99996948242188 * scale, 269.2951354980469 * scale, 115.99996948242188 * scale, 272.2951354980469 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.99996948242188 * scale, 177.85067749023438 * scale); ctx.bezierCurveTo(95.99996948242188 * scale, 187.35067749023438 * scale, 95.99996948242188 * scale, 187.35067749023438 * scale, 83.99996948242188 * scale, 196.85067749023438 * scale); ctx.bezierCurveTo(82.99996948242188 * scale, 203.85067749023438 * scale, 80.99996948242188 * scale, 209.85067749023438 * scale, 72.99996948242188 * scale, 210.85067749023438 * scale); ctx.bezierCurveTo(73.99996948242188 * scale, 220.85067749023438 * scale, 73.99996948242188 * scale, 221.85067749023438 * scale, 66.99996948242188 * scale, 227.85067749023438 * scale); ctx.bezierCurveTo(71.99996948242188 * scale, 235.85067749023438 * scale, 73.99996948242188 * scale, 239.85067749023438 * scale, 71.99996948242188 * scale, 247.85067749023438 * scale); ctx.bezierCurveTo(80.99996948242188 * scale, 257.8506774902344 * scale, 81.99996948242188 * scale, 263.8506774902344 * scale, 77.99996948242188 * scale, 271.8506774902344 * scale); ctx.bezierCurveTo(95.49996948242188 * scale, 272.8506774902344 * scale, 95.49996948242188 * scale, 272.8506774902344 * scale, 112.99996948242188 * scale, 273.8506774902344 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.restore(); } else if (i == 2) { ctx.save(); ctx.translate(130 * scale, 35 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(170.99996948242188 * scale, 133.85067749023438 * scale); ctx.bezierCurveTo(195.99996948242188 * scale, 129.85067749023438 * scale, 196.99996948242188 * scale, 111.85067749023438 * scale, 200.99996948242188 * scale, 88.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(169.99996948242188 * scale, 143.85067749023438 * scale); ctx.bezierCurveTo(189.99996948242188 * scale, 145.85067749023438 * scale, 207.99996948242188 * scale, 126.85067749023438 * scale, 222.99996948242188 * scale, 100.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(170.99996948242188 * scale, 157.85067749023438 * scale); ctx.bezierCurveTo(193.99996948242188 * scale, 160.85067749023438 * scale, 210.99996948242188 * scale, 151.85067749023438 * scale, 232.99996948242188 * scale, 139.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(169.99996948242188 * scale, 168.85067749023438 * scale); ctx.bezierCurveTo(192.99996948242188 * scale, 175.85067749023438 * scale, 203.99996948242188 * scale, 177.85067749023438 * scale, 245.99996948242188 * scale, 168.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(167.99996948242188 * scale, 168.85067749023438 * scale); ctx.bezierCurveTo(183.99996948242188 * scale, 189.85067749023438 * scale, 191.99996948242188 * scale, 193.85067749023438 * scale, 220.99996948242188 * scale, 196.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(176.99996948242188 * scale, 117.85067749023438 * scale); ctx.bezierCurveTo(181.99996948242188 * scale, 120.85067749023438 * scale, 181.99996948242188 * scale, 120.85067749023438 * scale, 186.99996948242188 * scale, 123.85067749023438 * scale); ctx.bezierCurveTo(183.99996948242188 * scale, 137.85067749023438 * scale, 185.99996948242188 * scale, 136.85067749023438 * scale, 190.99996948242188 * scale, 136.85067749023438 * scale); ctx.bezierCurveTo(186.99996948242188 * scale, 147.85067749023438 * scale, 189.99996948242188 * scale, 152.85067749023438 * scale, 193.99996948242188 * scale, 155.85067749023438 * scale); ctx.bezierCurveTo(187.99996948242188 * scale, 165.85067749023438 * scale, 190.99996948242188 * scale, 169.85067749023438 * scale, 190.99996948242188 * scale, 172.85067749023438 * scale); ctx.bezierCurveTo(186.99996948242188 * scale, 183.85067749023438 * scale, 186.99996948242188 * scale, 185.85067749023438 * scale, 189.99996948242188 * scale, 188.85067749023438 * scale); ctx.bezierCurveTo(182.49996948242188 * scale, 195.35067749023438 * scale, 182.49996948242188 * scale, 195.35067749023438 * scale, 174.99996948242188 * scale, 201.85067749023438 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(176.99996948242188 * scale, 112.18402099609375 * scale); ctx.bezierCurveTo(183.99996948242188 * scale, 119.18402099609375 * scale, 186.99996948242188 * scale, 117.18402099609375 * scale, 192.99996948242188 * scale, 116.18402099609375 * scale); ctx.bezierCurveTo(191.99996948242188 * scale, 126.18402099609375 * scale, 193.99996948242188 * scale, 130.18402099609375 * scale, 199.99996948242188 * scale, 130.18402099609375 * scale); ctx.bezierCurveTo(194.99996948242188 * scale, 145.18402099609375 * scale, 197.99996948242188 * scale, 147.18402099609375 * scale, 201.99996948242188 * scale, 153.18402099609375 * scale); ctx.bezierCurveTo(196.99996948242188 * scale, 164.18402099609375 * scale, 197.99996948242188 * scale, 169.18402099609375 * scale, 201.99996948242188 * scale, 174.18402099609375 * scale); ctx.bezierCurveTo(194.99996948242188 * scale, 184.18402099609375 * scale, 196.99996948242188 * scale, 187.18402099609375 * scale, 200.99996948242188 * scale, 193.18402099609375 * scale); ctx.bezierCurveTo(185.99996948242188 * scale, 195.18402099609375 * scale, 181.99996948242188 * scale, 201.18402099609375 * scale, 174.99996948242188 * scale, 210.18402099609375 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(176.99996948242188 * scale, 101.29513549804688 * scale); ctx.bezierCurveTo(181.99996948242188 * scale, 108.29513549804688 * scale, 189.99996948242188 * scale, 110.29513549804688 * scale, 195.99996948242188 * scale, 107.29513549804688 * scale); ctx.bezierCurveTo(197.99996948242188 * scale, 121.29513549804688 * scale, 200.99996948242188 * scale, 122.29513549804688 * scale, 206.99996948242188 * scale, 122.29513549804688 * scale); ctx.bezierCurveTo(201.99996948242188 * scale, 138.29513549804688 * scale, 204.99996948242188 * scale, 142.29513549804688 * scale, 211.99996948242188 * scale, 148.29513549804688 * scale); ctx.bezierCurveTo(201.99996948242188 * scale, 156.29513549804688 * scale, 205.99996948242188 * scale, 167.29513549804688 * scale, 213.99996948242188 * scale, 173.29513549804688 * scale); ctx.bezierCurveTo(204.99996948242188 * scale, 181.29513549804688 * scale, 204.99996948242188 * scale, 187.29513549804688 * scale, 205.99996948242188 * scale, 193.29513549804688 * scale); ctx.bezierCurveTo(190.99996948242188 * scale, 198.29513549804688 * scale, 181.99996948242188 * scale, 205.29513549804688 * scale, 174.99996948242188 * scale, 214.29513549804688 * scale); fill_path(ctx, undefined, color[4], 3 * scale); //#5f461f ctx.restore(); } ctx.translate(can.width / 2, can.height / 2); if (!i) { /* Draw shadow of the tree */ /*ctx.translate (w2, h2 - 8 * scale);*/ ctx.globalAlpha = 0.5; round_rect(ctx, -wt2, -ht2, wt, ht + shadow, round); fill_path(ctx, color[0]); /* Draw tree */ if (rotate) ctx.rotate(window.Math.PI); ctx.globalAlpha = 1; round_rect(ctx, -wt2, -ht2, wt, ht, round); fill_path(ctx, color[1], color[2], width); ctx.globalAlpha = 1; round_rect(ctx, -wt2 + 35 * scale, -ht2 + 20 * scale, wt - 50 * scale, ht - 50 * scale, round - 10 * scale); fill_path(ctx, color[3]); } if (i == 3) { ctx.translate(-can.width / 2, -can.height / 2); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(121 * scale, 190 * scale); ctx.bezierCurveTo(129 * scale, 186 * scale, 137 * scale, 183 * scale, 135 * scale, 163 * scale); ctx.bezierCurveTo(131 * scale, 135 * scale, 153 * scale, 127 * scale, 177 * scale, 124 * scale); ctx.bezierCurveTo(198 * scale, 120 * scale, 208 * scale, 122 * scale, 226 * scale, 128 * scale); ctx.bezierCurveTo(261 * scale, 112 * scale, 271 * scale, 126 * scale, 287 * scale, 147 * scale); ctx.bezierCurveTo(310 * scale, 163 * scale, 304 * scale, 183 * scale, 283 * scale, 196 * scale); ctx.bezierCurveTo(296 * scale, 249 * scale, 278 * scale, 262 * scale, 253 * scale, 263 * scale); ctx.bezierCurveTo(210 * scale, 264 * scale, 188 * scale, 252 * scale, 177 * scale, 234 * scale); ctx.bezierCurveTo(133 * scale, 242 * scale, 123 * scale, 241 * scale, 115 * scale, 225 * scale); ctx.bezierCurveTo(109 * scale, 206 * scale, 115 * scale, 193 * scale, 121 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(219 * scale, 144 * scale); ctx.bezierCurveTo(251 * scale, 121 * scale, 277 * scale, 136 * scale, 276 * scale, 159 * scale); ctx.bezierCurveTo(276 * scale, 176 * scale, 273 * scale, 191 * scale, 242 * scale, 193 * scale); ctx.bezierCurveTo(226 * scale, 228 * scale, 155 * scale, 219 * scale, 150 * scale, 183 * scale); ctx.bezierCurveTo(142 * scale, 144 * scale, 174 * scale, 127 * scale, 219 * scale, 144 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123 * scale, 214 * scale); ctx.bezierCurveTo(119 * scale, 198 * scale, 129 * scale, 189 * scale, 146 * scale, 194 * scale); ctx.bezierCurveTo(158 * scale, 201 * scale, 165 * scale, 218 * scale, 147 * scale, 226 * scale); ctx.bezierCurveTo(135 * scale, 230 * scale, 125 * scale, 222 * scale, 123 * scale, 214 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(257 * scale, 199 * scale); ctx.bezierCurveTo(264 * scale, 199 * scale, 275 * scale, 213 * scale, 261 * scale, 220 * scale); ctx.bezierCurveTo(246 * scale, 225 * scale, 235 * scale, 200 * scale, 257 * scale, 199 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.translate(-5 * scale, 55 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(186 * scale, 123 * scale); ctx.bezierCurveTo(198 * scale, 115 * scale, 219 * scale, 110 * scale, 219 * scale, 123 * scale); ctx.bezierCurveTo(216 * scale, 135 * scale, 171 * scale, 143 * scale, 186 * scale, 123 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.translate(5 * scale, -55 * scale); ctx.translate(-5 * scale, 15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(171 * scale, 241 * scale); ctx.bezierCurveTo(189 * scale, 234 * scale, 200 * scale, 248 * scale, 189 * scale, 254 * scale); ctx.bezierCurveTo(179 * scale, 260 * scale, 158 * scale, 246 * scale, 171 * scale, 241 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f } else if (i == 4) { ctx.translate(-can.width / 2, -can.height / 2); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 167 * scale); ctx.bezierCurveTo(47 * scale, 144 * scale, 64 * scale, 140 * scale, 80 * scale, 147 * scale); ctx.bezierCurveTo(95 * scale, 154 * scale, 95 * scale, 159 * scale, 100 * scale, 179 * scale); ctx.bezierCurveTo(105 * scale, 202 * scale, 95 * scale, 218 * scale, 69 * scale, 218 * scale); ctx.bezierCurveTo(48 * scale, 236 * scale, 26 * scale, 223 * scale, 28 * scale, 213 * scale); ctx.bezierCurveTo(28 * scale, 205 * scale, 29 * scale, 199 * scale, 32 * scale, 195 * scale); ctx.bezierCurveTo(21 * scale, 183 * scale, 27 * scale, 173 * scale, 30 * scale, 167 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26 * scale, 145 * scale); ctx.bezierCurveTo(32 * scale, 138 * scale, 37 * scale, 137 * scale, 40 * scale, 139 * scale); ctx.bezierCurveTo(43 * scale, 140 * scale, 41 * scale, 150 * scale, 31 * scale, 159 * scale); ctx.bezierCurveTo(23 * scale, 166 * scale, 17 * scale, 158 * scale, 26 * scale, 145 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13 * scale, 193 * scale); ctx.bezierCurveTo(21 * scale, 187 * scale, 30 * scale, 190 * scale, 20 * scale, 202 * scale); ctx.bezierCurveTo(13 * scale, 208 * scale, 7 * scale, 202 * scale, 13 * scale, 193 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(121 * scale, 190 * scale); ctx.bezierCurveTo(129 * scale, 186 * scale, 137 * scale, 183 * scale, 135 * scale, 163 * scale); ctx.bezierCurveTo(131 * scale, 135 * scale, 153 * scale, 127 * scale, 177 * scale, 124 * scale); ctx.bezierCurveTo(198 * scale, 120 * scale, 208 * scale, 122 * scale, 226 * scale, 128 * scale); ctx.bezierCurveTo(261 * scale, 112 * scale, 271 * scale, 126 * scale, 287 * scale, 147 * scale); ctx.bezierCurveTo(310 * scale, 163 * scale, 304 * scale, 183 * scale, 283 * scale, 196 * scale); ctx.bezierCurveTo(296 * scale, 249 * scale, 278 * scale, 262 * scale, 253 * scale, 263 * scale); ctx.bezierCurveTo(210 * scale, 264 * scale, 188 * scale, 252 * scale, 177 * scale, 234 * scale); ctx.bezierCurveTo(133 * scale, 242 * scale, 123 * scale, 241 * scale, 115 * scale, 225 * scale); ctx.bezierCurveTo(109 * scale, 206 * scale, 115 * scale, 193 * scale, 121 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(335 * scale, 196 * scale); ctx.bezierCurveTo(312 * scale, 208 * scale, 300 * scale, 185 * scale, 309 * scale, 167 * scale); ctx.bezierCurveTo(314 * scale, 141 * scale, 339 * scale, 127 * scale, 359 * scale, 144 * scale); ctx.bezierCurveTo(363 * scale, 148 * scale, 364 * scale, 150 * scale, 364 * scale, 150 * scale); ctx.bezierCurveTo(392 * scale, 143 * scale, 396 * scale, 183 * scale, 378 * scale, 204 * scale); ctx.bezierCurveTo(367 * scale, 215 * scale, 339 * scale, 208 * scale, 335 * scale, 196 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(349 * scale, 212 * scale); ctx.bezierCurveTo(339 * scale, 216 * scale, 334 * scale, 208 * scale, 341 * scale, 203 * scale); ctx.bezierCurveTo(353 * scale, 198 * scale, 361 * scale, 205 * scale, 349 * scale, 212 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46 * scale, 165 * scale); ctx.bezierCurveTo(55 * scale, 148 * scale, 85 * scale, 157 * scale, 83 * scale, 175 * scale); ctx.bezierCurveTo(99 * scale, 185 * scale, 89 * scale, 212 * scale, 66 * scale, 204 * scale); ctx.bezierCurveTo(55 * scale, 212 * scale, 43 * scale, 212 * scale, 41 * scale, 202 * scale); ctx.bezierCurveTo(39 * scale, 194 * scale, 42 * scale, 187 * scale, 49 * scale, 185 * scale); ctx.bezierCurveTo(44 * scale, 175 * scale, 45 * scale, 172 * scale, 46 * scale, 165 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(219 * scale, 144 * scale); ctx.bezierCurveTo(251 * scale, 121 * scale, 277 * scale, 136 * scale, 276 * scale, 159 * scale); ctx.bezierCurveTo(276 * scale, 176 * scale, 273 * scale, 191 * scale, 242 * scale, 193 * scale); ctx.bezierCurveTo(226 * scale, 228 * scale, 155 * scale, 219 * scale, 150 * scale, 183 * scale); ctx.bezierCurveTo(142 * scale, 144 * scale, 174 * scale, 127 * scale, 219 * scale, 144 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123 * scale, 214 * scale); ctx.bezierCurveTo(119 * scale, 198 * scale, 129 * scale, 189 * scale, 146 * scale, 194 * scale); ctx.bezierCurveTo(158 * scale, 201 * scale, 165 * scale, 218 * scale, 147 * scale, 226 * scale); ctx.bezierCurveTo(135 * scale, 230 * scale, 125 * scale, 222 * scale, 123 * scale, 214 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(257 * scale, 199 * scale); ctx.bezierCurveTo(264 * scale, 199 * scale, 275 * scale, 213 * scale, 261 * scale, 220 * scale); ctx.bezierCurveTo(246 * scale, 225 * scale, 235 * scale, 200 * scale, 257 * scale, 199 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.translate(-5 * scale, 55 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(186 * scale, 123 * scale); ctx.bezierCurveTo(198 * scale, 115 * scale, 219 * scale, 110 * scale, 219 * scale, 123 * scale); ctx.bezierCurveTo(216 * scale, 135 * scale, 171 * scale, 143 * scale, 186 * scale, 123 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.translate(5 * scale, -55 * scale); ctx.translate(-5 * scale, 15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(171 * scale, 241 * scale); ctx.bezierCurveTo(189 * scale, 234 * scale, 200 * scale, 248 * scale, 189 * scale, 254 * scale); ctx.bezierCurveTo(179 * scale, 260 * scale, 158 * scale, 246 * scale, 171 * scale, 241 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(367 * scale, 164 * scale); ctx.bezierCurveTo(380 * scale, 160 * scale, 391 * scale, 185 * scale, 371 * scale, 189 * scale); ctx.bezierCurveTo(362 * scale, 192 * scale, 354 * scale, 191 * scale, 350 * scale, 185 * scale); ctx.bezierCurveTo(326 * scale, 205 * scale, 314 * scale, 182 * scale, 316 * scale, 171 * scale); ctx.bezierCurveTo(317 * scale, 150 * scale, 332 * scale, 143 * scale, 347 * scale, 147 * scale); ctx.bezierCurveTo(361 * scale, 151 * scale, 366 * scale, 158 * scale, 367 * scale, 164 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f } return can; } function create_music_button(scale, color, i, on) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 121 * scale; can.height = 130 * scale; ctx.translate(0, 20 * scale); if (i == 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(6 * scale, 23 * scale); ctx.bezierCurveTo(6 * scale, 46 * scale, 6 * scale, 46 * scale, 6 * scale, 69 * scale); ctx.bezierCurveTo(21 * scale, 69 * scale, 21 * scale, 69 * scale, 36 * scale, 69 * scale); ctx.bezierCurveTo(45.5 * scale, 78.5 * scale, 45.5 * scale, 78.5 * scale, 55 * scale, 88 * scale); ctx.bezierCurveTo(55.5 * scale, 45.5 * scale, 55.5 * scale, 45.5 * scale, 56 * scale, 3 * scale); ctx.bezierCurveTo(47 * scale, 14 * scale, 47 * scale, 14 * scale, 38 * scale, 25 * scale); ctx.bezierCurveTo(23 * scale, 25 * scale, 23 * scale, 25 * scale, 6 * scale, 23 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 13 * scale); //#9e793d #5f461f } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(6 * scale, 23 * scale); ctx.bezierCurveTo(6 * scale, 46 * scale, 6 * scale, 46 * scale, 6 * scale, 69 * scale); ctx.bezierCurveTo(21 * scale, 69 * scale, 21 * scale, 69 * scale, 36 * scale, 69 * scale); ctx.bezierCurveTo(45.5 * scale, 78.5 * scale, 45.5 * scale, 78.5 * scale, 55 * scale, 88 * scale); ctx.bezierCurveTo(55.5 * scale, 45.5 * scale, 55.5 * scale, 45.5 * scale, 56 * scale, 3 * scale); ctx.bezierCurveTo(47 * scale, 14 * scale, 47 * scale, 14 * scale, 38 * scale, 25 * scale); ctx.bezierCurveTo(23 * scale, 25 * scale, 23 * scale, 25 * scale, 6 * scale, 23 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f if (on == 1) { ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(67 * scale, 30 * scale); ctx.bezierCurveTo(73 * scale, 47 * scale, 69 * scale, 45 * scale, 67 * scale, 58 * scale); fill_path(ctx, undefined, color[0], 10 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70 * scale, 17 * scale); ctx.bezierCurveTo(83 * scale, 45 * scale, 76 * scale, 55 * scale, 70 * scale, 69 * scale); fill_path(ctx, undefined, color[0], 10 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 8 * scale); ctx.bezierCurveTo(88 * scale, 31 * scale, 89 * scale, 55 * scale, 76 * scale, 79 * scale); fill_path(ctx, undefined, color[0], 10 * scale); //#9e793d #5f461f if (i == 1) { ctx.translate(-6 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(67 * scale, 30 * scale); ctx.bezierCurveTo(73 * scale, 47 * scale, 69 * scale, 45 * scale, 67 * scale, 58 * scale); fill_path(ctx, undefined, color[3], 18 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70 * scale, 17 * scale); ctx.bezierCurveTo(83 * scale, 45 * scale, 76 * scale, 55 * scale, 70 * scale, 69 * scale); fill_path(ctx, undefined, color[3], 18 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 8 * scale); ctx.bezierCurveTo(88 * scale, 31 * scale, 89 * scale, 55 * scale, 76 * scale, 79 * scale); fill_path(ctx, undefined, color[3], 18 * scale); //#9e793d #5f461f ctx.translate(-6, 0 * scale); } else { ctx.translate(-6 * scale, -5 * scale); } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(67 * scale, 30 * scale); ctx.bezierCurveTo(73 * scale, 47 * scale, 69 * scale, 45 * scale, 67 * scale, 58 * scale); fill_path(ctx, undefined, color[2], 10 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70 * scale, 17 * scale); ctx.bezierCurveTo(83 * scale, 45 * scale, 76 * scale, 55 * scale, 70 * scale, 69 * scale); fill_path(ctx, undefined, color[2], 10 * scale); //#9e793d #5f461f ctx.translate(3, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 8 * scale); ctx.bezierCurveTo(88 * scale, 31 * scale, 89 * scale, 55 * scale, 76 * scale, 79 * scale); fill_path(ctx, undefined, color[2], 10 * scale); //#9e793d #5f461f } else { if (i == 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(108 * scale, 27 * scale); ctx.bezierCurveTo(94 * scale, 45.5 * scale, 94 * scale, 45.5 * scale, 80 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 18 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 30 * scale); ctx.bezierCurveTo(93 * scale, 47 * scale, 93 * scale, 47 * scale, 107 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 18 * scale); //#9e793d #5f461f } else { ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(108 * scale, 27 * scale); ctx.bezierCurveTo(94 * scale, 45.5 * scale, 94 * scale, 45.5 * scale, 80 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 30 * scale); ctx.bezierCurveTo(93 * scale, 47 * scale, 93 * scale, 47 * scale, 107 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 7 * scale); //#9e793d #5f461f ctx.translate(0, 5 * scale); } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(108 * scale, 27 * scale); ctx.bezierCurveTo(94 * scale, 45.5 * scale, 94 * scale, 45.5 * scale, 80 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 30 * scale); ctx.bezierCurveTo(93 * scale, 47 * scale, 93 * scale, 47 * scale, 107 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 7 * scale); //#9e793d #5f461f } return can; } function create_tree_branch(scale, color, rotate) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 450; var h = scale * 145; var w2 = w / 2; var h2 = h / 2; var round = scale * 10; var wt = scale * 300; var ht = scale * 30; var wt2 = wt / 2; var ht2 = ht / 2; var width = 4; /* Draw shadow of the tree */ if (rotate) { var w = scale * 145; var h = scale * 450; can.width = w; can.height = h; ctx.rotate(window.Math.PI / 2); ctx.save(); ctx.globalAlpha = 0.5; round_rect(ctx, 100 * scale, -110 * scale, wt, ht, round); fill_path(ctx, color[0]); ctx.translate(178 * scale, -98 * scale); round_rect(ctx, -wt2, -ht2 - 6 * scale, 100 * scale, 100 * scale, round); fill_path(ctx, color[0]); ctx.translate(-50 * scale, 5 * scale); round_rect(ctx, 220 * scale, -15 * scale, 90 * scale, 90 * scale, round); fill_path(ctx, color[0]); ctx.restore(); /* Draw tree */ ctx.save(); ctx.globalAlpha = 1; ctx.translate(250 * scale, -63 * scale); round_rect(ctx, -wt2 - 20 * scale, -ht2, wt, ht, round); fill_path(ctx, color[1], color[2], width); ctx.translate(-70 * scale, -40 * scale); round_rect(ctx, -wt2 - 20 * scale, -ht2, 100 * scale, 100 * scale, round); fill_path(ctx, color[3], color[4], width); ctx.translate(-70 * scale, 15 * scale); round_rect(ctx, 220 * scale, -22 * scale, 90 * scale, 90 * scale, round); fill_path(ctx, color[3], color[4], width); round_rect(ctx, 230 * scale, -12 * scale, 55 * scale, 55 * scale, round); fill_path(ctx, color[5]); ctx.translate(-70 * scale, 0); round_rect(ctx, -15 * scale, -2 * scale, 60 * scale, 60 * scale, round); fill_path(ctx, color[5]); ctx.restore(); } else { can.width = w; can.height = h; ctx.save(); ctx.globalAlpha = 0.5; ctx.translate(w2, h2 + 10 * scale); round_rect(ctx, -wt2, -ht2, wt, ht, round); fill_path(ctx, color[0]); ctx.translate(-65 * scale, -25 * scale); round_rect(ctx, -wt2, -ht2 - 6 * scale, 100 * scale, 100 * scale, 15 * scale); fill_path(ctx, color[0]); ctx.translate(-35 * scale, -5 * scale); round_rect(ctx, 220 * scale, -15 * scale, 90 * scale, 90 * scale, 15 * scale); fill_path(ctx, color[0]); ctx.restore(); /* Draw tree */ ctx.save(); ctx.globalAlpha = 1; ctx.translate(240 * scale, 70 * scale); round_rect(ctx, -wt2, -ht2, wt, ht, round); fill_path(ctx, color[1], color[2], width); ctx.translate(-60 * scale, -40 * scale); round_rect(ctx, -wt2 - 20 * scale, -ht2, 100 * scale, 100 * scale, 15 * scale); fill_path(ctx, color[3], color[4], width); ctx.translate(-55 * scale, 10 * scale); round_rect(ctx, 220 * scale, -22 * scale, 90 * scale, 90 * scale, 15 * scale); fill_path(ctx, color[3], color[4], width); round_rect(ctx, 240 * scale, -12 * scale, 55 * scale, 55 * scale, 12 * scale); fill_path(ctx, color[5]); ctx.translate(45 * scale, 0 * scale); round_rect(ctx, -145 * scale, -2 * scale, 60 * scale, 60 * scale, 12 * scale); fill_path(ctx, color[5]); ctx.restore(); } return can; } function create_apricot_forest(branch, tree) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = window.Math.max(tree.width, branch.width); var h = window.Math.max(tree.height, branch.height); can.width = w; can.height = h; ctx.drawImage(branch, (w - branch.width) / 2, (h - branch.height) / 2); ctx.drawImage(tree, (w - tree.width) / 2, (h - tree.height) / 2); return can; } function create_pickaxe(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 105; var h = scale * 125; var width = scale * 4; var round = scale * 10; var shadow = scale * 5; var wa = scale * 10; var ha = scale * 110; var wa2 = wa / 2; var ha2 = ha / 2; can.width = w; can.height = h; /* Draw shadow of the axe */ ctx.save(); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(w / 2 + 8 * scale, h / 2 + shadow); round_rect(ctx, -wa2, -ha2, wa, ha, round); if (draw_shadow) { fill_path(ctx, color[0]); } else { fill_path(ctx, color[1]); } /* Draw shadow of the Pick */ ctx.translate(-130 * scale + shadow, -128 * scale + shadow); ctx.beginPath(); ctx.bezierCurveTo(159 * scale, 93 * scale, 156 * scale, 99 * scale, 154 * scale, 102 * scale); ctx.bezierCurveTo(128 * scale, 92 * scale, 90 * scale, 93 * scale, 72 * scale, 96 * scale); ctx.bezierCurveTo(68 * scale, 84 * scale, 143 * scale, 73 * scale, 162 * scale, 86 * scale); ctx.closePath(); fill_path(ctx, color[2]); ctx.restore(); /* Draw axe */ ctx.translate(w / 2 + 8, h / 2); ctx.globalAlpha = 1; round_rect(ctx, -wa2, -ha2, wa, ha, round); fill_path(ctx, color[3], color[4], width); /* Draw Pick */ ctx.translate(-130 * scale, -125 * scale); ctx.beginPath(); ctx.bezierCurveTo(159 * scale, 93 * scale, 156 * scale, 99 * scale, 154 * scale, 102 * scale); ctx.bezierCurveTo(128 * scale, 92 * scale, 90 * scale, 93 * scale, 72 * scale, 96 * scale); ctx.bezierCurveTo(68 * scale, 84 * scale, 143 * scale, 73 * scale, 162 * scale, 86 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], width); return can; } function create_sword_wood(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 469 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(20 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88 * scale, 30 * scale); ctx.bezierCurveTo(96 * scale, 49.5 * scale, 96 * scale, 49.5 * scale, 104 * scale, 69 * scale); ctx.bezierCurveTo(105.5 * scale, 41.5 * scale, 105.5 * scale, 41.5 * scale, 107 * scale, 14 * scale); ctx.bezierCurveTo(114 * scale, 9.5 * scale, 114 * scale, 9.5 * scale, 121 * scale, 5 * scale); ctx.bezierCurveTo(135.5 * scale, 27.5 * scale, 135.5 * scale, 27.5 * scale, 150 * scale, 50 * scale); ctx.bezierCurveTo(110.5 * scale, 286 * scale, 110.5 * scale, 286 * scale, 103 * scale, 331 * scale); ctx.bezierCurveTo(69.5 * scale, 325 * scale, 69.5 * scale, 325 * scale, 36 * scale, 319 * scale); ctx.bezierCurveTo(56.5 * scale, 180 * scale, 56.5 * scale, 180 * scale, 77 * scale, 41 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 31 * scale); ctx.bezierCurveTo(125 * scale, 43 * scale, 125 * scale, 43 * scale, 132 * scale, 55 * scale); ctx.bezierCurveTo(109.5 * scale, 185.5 * scale, 109.5 * scale, 185.5 * scale, 87 * scale, 316 * scale); ctx.bezierCurveTo(72 * scale, 313.5 * scale, 72 * scale, 313.5 * scale, 57 * scale, 311 * scale); ctx.bezierCurveTo(76.5 * scale, 181 * scale, 76.5 * scale, 181 * scale, 96 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e799f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 328 * scale); ctx.bezierCurveTo(47 * scale, 385.5 * scale, 47 * scale, 385.5 * scale, 38 * scale, 443 * scale); ctx.bezierCurveTo(52 * scale, 446 * scale, 52 * scale, 446 * scale, 66 * scale, 449 * scale); ctx.bezierCurveTo(76.5 * scale, 388.5 * scale, 76.5 * scale, 388.5 * scale, 87 * scale, 328 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(74 * scale, 302 * scale); ctx.bezierCurveTo(104 * scale, 316.5 * scale, 104 * scale, 316.5 * scale, 134 * scale, 331 * scale); ctx.bezierCurveTo(133 * scale, 341 * scale, 133 * scale, 341 * scale, 132 * scale, 351 * scale); ctx.bezierCurveTo(69.5 * scale, 342 * scale, 69.5 * scale, 342 * scale, 7 * scale, 333 * scale); ctx.bezierCurveTo(8 * scale, 323 * scale, 8 * scale, 323 * scale, 9 * scale, 313 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.save(); ctx.translate(51.5 * scale, 440.5 * scale); ctx.rotate(0.2); round_rect(ctx, -20.5 * scale, -18.5 * scale, 41 * scale, 37 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 316 * scale); ctx.bezierCurveTo(90 * scale, 324.5 * scale, 90 * scale, 324.5 * scale, 107 * scale, 333 * scale); ctx.bezierCurveTo(70 * scale, 327.5 * scale, 70 * scale, 327.5 * scale, 33 * scale, 322 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e79bf ctx.globalAlpha = 1; ctx.translate(-20 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88 * scale, 30 * scale); ctx.bezierCurveTo(96 * scale, 49.5 * scale, 96 * scale, 49.5 * scale, 104 * scale, 69 * scale); ctx.bezierCurveTo(105.5 * scale, 41.5 * scale, 105.5 * scale, 41.5 * scale, 107 * scale, 14 * scale); ctx.bezierCurveTo(114 * scale, 9.5 * scale, 114 * scale, 9.5 * scale, 121 * scale, 5 * scale); ctx.bezierCurveTo(135.5 * scale, 27.5 * scale, 135.5 * scale, 27.5 * scale, 150 * scale, 50 * scale); ctx.bezierCurveTo(110.5 * scale, 286 * scale, 110.5 * scale, 286 * scale, 103 * scale, 331 * scale); ctx.bezierCurveTo(69.5 * scale, 325 * scale, 69.5 * scale, 325 * scale, 36 * scale, 319 * scale); ctx.bezierCurveTo(56.5 * scale, 180 * scale, 56.5 * scale, 180 * scale, 77 * scale, 41 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 31 * scale); ctx.bezierCurveTo(125 * scale, 43 * scale, 125 * scale, 43 * scale, 132 * scale, 55 * scale); ctx.bezierCurveTo(109.5 * scale, 185.5 * scale, 109.5 * scale, 185.5 * scale, 87 * scale, 316 * scale); ctx.bezierCurveTo(72 * scale, 313.5 * scale, 72 * scale, 313.5 * scale, 57 * scale, 311 * scale); ctx.bezierCurveTo(76.5 * scale, 181 * scale, 76.5 * scale, 181 * scale, 96 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e799f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88 * scale, 30 * scale); ctx.bezierCurveTo(96 * scale, 49.5 * scale, 96 * scale, 49.5 * scale, 104 * scale, 69 * scale); ctx.bezierCurveTo(105.5 * scale, 41.5 * scale, 105.5 * scale, 41.5 * scale, 107 * scale, 14 * scale); ctx.bezierCurveTo(114 * scale, 9.5 * scale, 114 * scale, 9.5 * scale, 121 * scale, 5 * scale); ctx.bezierCurveTo(135.5 * scale, 27.5 * scale, 135.5 * scale, 27.5 * scale, 150 * scale, 50 * scale); ctx.bezierCurveTo(110.5 * scale, 286 * scale, 110.5 * scale, 286 * scale, 103 * scale, 331 * scale); ctx.bezierCurveTo(69.5 * scale, 325 * scale, 69.5 * scale, 325 * scale, 36 * scale, 319 * scale); ctx.bezierCurveTo(56.5 * scale, 180 * scale, 56.5 * scale, 180 * scale, 77 * scale, 41 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 328 * scale); ctx.bezierCurveTo(47 * scale, 385.5 * scale, 47 * scale, 385.5 * scale, 38 * scale, 443 * scale); ctx.bezierCurveTo(52 * scale, 446 * scale, 52 * scale, 446 * scale, 66 * scale, 449 * scale); ctx.bezierCurveTo(76.5 * scale, 388.5 * scale, 76.5 * scale, 388.5 * scale, 87 * scale, 328 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(74 * scale, 302 * scale); ctx.bezierCurveTo(104 * scale, 316.5 * scale, 104 * scale, 316.5 * scale, 134 * scale, 331 * scale); ctx.bezierCurveTo(133 * scale, 341 * scale, 133 * scale, 341 * scale, 132 * scale, 351 * scale); ctx.bezierCurveTo(69.5 * scale, 342 * scale, 69.5 * scale, 342 * scale, 7 * scale, 333 * scale); ctx.bezierCurveTo(8 * scale, 323 * scale, 8 * scale, 323 * scale, 9 * scale, 313 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 7 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(51.5 * scale, 440.5 * scale); ctx.rotate(0.2); round_rect(ctx, -20.5 * scale, -18.5 * scale, 41 * scale, 37 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 316 * scale); ctx.bezierCurveTo(90 * scale, 324.5 * scale, 90 * scale, 324.5 * scale, 107 * scale, 333 * scale); ctx.bezierCurveTo(70 * scale, 327.5 * scale, 70 * scale, 327.5 * scale, 33 * scale, 322 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#9e79bf return can; } function create_pirate_sword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 424 * scale; can.height = 788 * scale; ctx.translate(25 * scale, 25 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(193.5 * scale, 602.5 * scale); ctx.rotate(-0.12); round_rect(ctx, -26.5 * scale, -97.5 * scale, 53 * scale, 195 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[0]); //#c7c7c7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(137 * scale, 519 * scale); ctx.bezierCurveTo(182 * scale, 513 * scale, 182 * scale, 513 * scale, 227 * scale, 507 * scale); ctx.bezierCurveTo(214 * scale, 417 * scale, 189 * scale, 304 * scale, 221 * scale, 180 * scale); ctx.bezierCurveTo(191 * scale, 126 * scale, 192 * scale, 105 * scale, 198 * scale, 64 * scale); ctx.bezierCurveTo(123 * scale, 102 * scale, 99 * scale, 285 * scale, 137 * scale, 517 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#c7c7c7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(175 * scale, 119 * scale); ctx.bezierCurveTo(176 * scale, 142 * scale, 184 * scale, 165 * scale, 197 * scale, 183 * scale); ctx.bezierCurveTo(167 * scale, 325 * scale, 191 * scale, 405 * scale, 202 * scale, 502 * scale); ctx.bezierCurveTo(180 * scale, 503 * scale, 180 * scale, 503 * scale, 158 * scale, 504 * scale); ctx.bezierCurveTo(135 * scale, 396 * scale, 134 * scale, 185 * scale, 175 * scale, 119 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#c7c7c7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110 * scale, 518 * scale); ctx.bezierCurveTo(111.5 * scale, 533 * scale, 111.5 * scale, 533 * scale, 113 * scale, 548 * scale); ctx.bezierCurveTo(162.5 * scale, 544 * scale, 162.5 * scale, 544 * scale, 212 * scale, 540 * scale); ctx.bezierCurveTo(312 * scale, 535 * scale, 281 * scale, 665 * scale, 225 * scale, 665 * scale); ctx.bezierCurveTo(227 * scale, 686.5 * scale, 227 * scale, 686.5 * scale, 229 * scale, 708 * scale); ctx.bezierCurveTo(343 * scale, 684 * scale, 354 * scale, 496 * scale, 222 * scale, 498 * scale); ctx.bezierCurveTo(165.5 * scale, 503 * scale, 165.5 * scale, 503 * scale, 109 * scale, 508 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#c7c7c7 circle(ctx, 204 * scale, 693 * scale, 36.013886210738214 * scale); fill_path(ctx, color[0]); //#c7c7c7 circle(ctx, 105 * scale, 518 * scale, 30 * scale); fill_path(ctx, color[0]); //#c7c7c7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(171 * scale, 535 * scale); ctx.bezierCurveTo(139.5 * scale, 537.5 * scale, 139.5 * scale, 537.5 * scale, 108 * scale, 540 * scale); ctx.bezierCurveTo(110 * scale, 527.5 * scale, 110 * scale, 527.5 * scale, 112 * scale, 515 * scale); ctx.bezierCurveTo(148 * scale, 513 * scale, 148 * scale, 513 * scale, 184 * scale, 511 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#c7c7c7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(244 * scale, 669 * scale); ctx.bezierCurveTo(248.5 * scale, 680 * scale, 248.5 * scale, 680 * scale, 253 * scale, 691 * scale); ctx.bezierCurveTo(239.5 * scale, 697 * scale, 239.5 * scale, 697 * scale, 226 * scale, 703 * scale); ctx.bezierCurveTo(223 * scale, 691.5 * scale, 223 * scale, 691.5 * scale, 220 * scale, 680 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#c7c7c7 ctx.translate(-25 * scale, -25 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(193.5 * scale, 602.5 * scale); ctx.rotate(-0.12); round_rect(ctx, -26.5 * scale, -97.5 * scale, 53 * scale, 195 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 16 * scale); //#4a3a22 #362818 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(137 * scale, 519 * scale); ctx.bezierCurveTo(182 * scale, 513 * scale, 182 * scale, 513 * scale, 227 * scale, 507 * scale); ctx.bezierCurveTo(214 * scale, 417 * scale, 189 * scale, 304 * scale, 221 * scale, 180 * scale); ctx.bezierCurveTo(191 * scale, 126 * scale, 192 * scale, 105 * scale, 198 * scale, 64 * scale); ctx.bezierCurveTo(123 * scale, 102 * scale, 99 * scale, 285 * scale, 137 * scale, 517 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 16 * scale); //#c7c7c7 #909090 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(175 * scale, 119 * scale); ctx.bezierCurveTo(176 * scale, 142 * scale, 184 * scale, 165 * scale, 197 * scale, 183 * scale); ctx.bezierCurveTo(167 * scale, 325 * scale, 191 * scale, 405 * scale, 202 * scale, 502 * scale); ctx.bezierCurveTo(180 * scale, 503 * scale, 180 * scale, 503 * scale, 158 * scale, 504 * scale); ctx.bezierCurveTo(135 * scale, 396 * scale, 134 * scale, 185 * scale, 175 * scale, 119 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#d6d6d6 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110 * scale, 518 * scale); ctx.bezierCurveTo(111.5 * scale, 533 * scale, 111.5 * scale, 533 * scale, 113 * scale, 548 * scale); ctx.bezierCurveTo(162.5 * scale, 544 * scale, 162.5 * scale, 544 * scale, 212 * scale, 540 * scale); ctx.bezierCurveTo(312 * scale, 535 * scale, 281 * scale, 665 * scale, 225 * scale, 665 * scale); ctx.bezierCurveTo(227 * scale, 686.5 * scale, 227 * scale, 686.5 * scale, 229 * scale, 708 * scale); ctx.bezierCurveTo(343 * scale, 684 * scale, 354 * scale, 496 * scale, 222 * scale, 498 * scale); ctx.bezierCurveTo(165.5 * scale, 503 * scale, 165.5 * scale, 503 * scale, 109 * scale, 508 * scale); ctx.closePath(); fill_path(ctx, color[6], color[4], 16 * scale); //#bbbbbb #909090 circle(ctx, 204 * scale, 693 * scale, 36.013886210738214 * scale); fill_path(ctx, color[6], color[4], 16 * scale); //#bbbbbb #909090 circle(ctx, 105 * scale, 518 * scale, 30 * scale); fill_path(ctx, color[6], color[4], 16 * scale); //#bbbbbb #909090 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(171 * scale, 535 * scale); ctx.bezierCurveTo(139.5 * scale, 537.5 * scale, 139.5 * scale, 537.5 * scale, 108 * scale, 540 * scale); ctx.bezierCurveTo(110 * scale, 527.5 * scale, 110 * scale, 527.5 * scale, 112 * scale, 515 * scale); ctx.bezierCurveTo(148 * scale, 513 * scale, 148 * scale, 513 * scale, 184 * scale, 511 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#bbbbbb ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(244 * scale, 669 * scale); ctx.bezierCurveTo(248.5 * scale, 680 * scale, 248.5 * scale, 680 * scale, 253 * scale, 691 * scale); ctx.bezierCurveTo(239.5 * scale, 697 * scale, 239.5 * scale, 697 * scale, 226 * scale, 703 * scale); ctx.bezierCurveTo(223 * scale, 691.5 * scale, 223 * scale, 691.5 * scale, 220 * scale, 680 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#bbbbbb circle(ctx, 204 * scale, 693 * scale, 17.029386365926403 * scale); fill_path(ctx, color[7]); //#c7c7c7 circle(ctx, 106 * scale, 518 * scale, 12 * scale); fill_path(ctx, color[7]); //#c7c7c7 return can; } function create_sword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 100 * scale; can.height = 250 * scale; ctx.translate(-135 * scale, -75 * scale); ctx.globalAlpha = draw_shadow ? 0.8 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(178.5 * scale, 238.03125 * scale); ctx.bezierCurveTo(177 * scale, 175.03125 * scale, 177 * scale, 175.03125 * scale, 175.5 * scale, 112.03125 * scale); ctx.bezierCurveTo(184.5 * scale, 100.53125 * scale, 184.5 * scale, 100.53125 * scale, 193.5 * scale, 89.03125 * scale); ctx.bezierCurveTo(202 * scale, 100.03125 * scale, 202 * scale, 100.03125 * scale, 210.5 * scale, 111.03125 * scale); ctx.bezierCurveTo(209.5 * scale, 174.03125 * scale, 209.5 * scale, 174.03125 * scale, 208.5 * scale, 237.03125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#b1b9bb #8795a4 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(193.5 * scale, 91.03125 * scale); ctx.bezierCurveTo(193.5 * scale, 163.03125 * scale, 193.5 * scale, 163.03125 * scale, 193.5 * scale, 235.03125 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0]); //#b1b9bb #8795a4*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(155.5 * scale, 239.03125 * scale); ctx.bezierCurveTo(194 * scale, 238.53125 * scale, 194 * scale, 238.53125 * scale, 232.5 * scale, 238.03125 * scale); ctx.bezierCurveTo(232.5 * scale, 243.03125 * scale, 232.5 * scale, 243.03125 * scale, 232.5 * scale, 248.03125 * scale); ctx.bezierCurveTo(194 * scale, 248.53125 * scale, 194 * scale, 248.53125 * scale, 155.5 * scale, 249.03125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#fcf14c #ffd000 circle(ctx, 160.5 * scale, 243.03125 * scale, 7 * scale); fill_path(ctx, color[0]); //#fcf14c #ffd000 circle(ctx, 227.5 * scale, 242.03125 * scale, 7 * scale); fill_path(ctx, color[0]); //#fcf14c #ffd000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.5 * scale, 253.03125 * scale); ctx.bezierCurveTo(193.5 * scale, 253.03125 * scale, 193.5 * scale, 253.03125 * scale, 201.5 * scale, 253.03125 * scale); ctx.bezierCurveTo(201.5 * scale, 276.03125 * scale, 201.5 * scale, 276.03125 * scale, 201.5 * scale, 299.03125 * scale); ctx.bezierCurveTo(194.5 * scale, 299.03125 * scale, 194.5 * scale, 299.03125 * scale, 187.5 * scale, 299.03125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 5 * scale); //#5a381e #513d29 circle(ctx, 194 * scale, 298 * scale, 9 * scale); fill_path(ctx, color[0], color[0], 5 * scale); //#fcf14c #fcc500 ctx.globalAlpha = 1; ctx.translate(-10 * scale, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(178.5 * scale, 238.03125 * scale); ctx.bezierCurveTo(177 * scale, 175.03125 * scale, 177 * scale, 175.03125 * scale, 175.5 * scale, 112.03125 * scale); ctx.bezierCurveTo(184.5 * scale, 100.53125 * scale, 184.5 * scale, 100.53125 * scale, 193.5 * scale, 89.03125 * scale); ctx.bezierCurveTo(202 * scale, 100.03125 * scale, 202 * scale, 100.03125 * scale, 210.5 * scale, 111.03125 * scale); ctx.bezierCurveTo(209.5 * scale, 174.03125 * scale, 209.5 * scale, 174.03125 * scale, 208.5 * scale, 237.03125 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#b1b9bb #8795a4 /*ctx.beginPath (); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo (193.5 * scale, 91.03125 * scale); ctx.bezierCurveTo(193.5 * scale, 163.03125 * scale, 193.5 * scale, 163.03125 * scale, 193.5 * scale, 235.03125 * scale); ctx.closePath (); fill_path (ctx, undefined, color[4], 3 * scale); //#b1b9bb #8795a4*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(155.5 * scale, 239.03125 * scale); ctx.bezierCurveTo(194 * scale, 238.53125 * scale, 194 * scale, 238.53125 * scale, 232.5 * scale, 238.03125 * scale); ctx.bezierCurveTo(232.5 * scale, 243.03125 * scale, 232.5 * scale, 243.03125 * scale, 232.5 * scale, 248.03125 * scale); ctx.bezierCurveTo(194 * scale, 248.53125 * scale, 194 * scale, 248.53125 * scale, 155.5 * scale, 249.03125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 5 * scale); //#fcf14c #ffd000 circle(ctx, 160.5 * scale, 243.03125 * scale, 7 * scale); fill_path(ctx, color[1], color[2], 5 * scale); //#fcf14c #ffd000 circle(ctx, 227.5 * scale, 242.03125 * scale, 7 * scale); fill_path(ctx, color[1], color[2], 5 * scale); //#fcf14c #ffd000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.5 * scale, 253.03125 * scale); ctx.bezierCurveTo(193.5 * scale, 253.03125 * scale, 193.5 * scale, 253.03125 * scale, 201.5 * scale, 253.03125 * scale); ctx.bezierCurveTo(201.5 * scale, 276.03125 * scale, 201.5 * scale, 276.03125 * scale, 201.5 * scale, 299.03125 * scale); ctx.bezierCurveTo(194.5 * scale, 299.03125 * scale, 194.5 * scale, 299.03125 * scale, 187.5 * scale, 299.03125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#5a381e #513d29 circle(ctx, 194 * scale, 298 * scale, 9 * scale); fill_path(ctx, color[1], color[2], 7 * scale); //#fcf14c #fcc500 return can; } function create_stonesword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 290 * scale; can.height = 525 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(20 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 351 * scale); ctx.bezierCurveTo(129 * scale, 218 * scale, 129 * scale, 218 * scale, 147 * scale, 85 * scale); ctx.bezierCurveTo(167 * scale, 65.5 * scale, 167 * scale, 65.5 * scale, 187 * scale, 46 * scale); ctx.bezierCurveTo(201.5 * scale, 70.5 * scale, 201.5 * scale, 70.5 * scale, 216 * scale, 95 * scale); ctx.bezierCurveTo(194.5 * scale, 227.5 * scale, 194.5 * scale, 227.5 * scale, 173 * scale, 360 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(77, 45, 20) rgb(67, 37, 22) ctx.save(); ctx.translate(131 * scale, 425.5 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -56.5 * scale, 28 * scale, 113 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[0]); //rgb(77, 45, 20) rgb(67, 37, 22) circle(ctx, 122 * scale, 480 * scale, 18.439088914585774 * scale); fill_path(ctx, color[0]); //rgb(77, 45, 20) rgb(67, 37, 22) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 371 * scale); ctx.bezierCurveTo(131 * scale, 373 * scale, 145 * scale, 378 * scale, 197 * scale, 388 * scale); ctx.bezierCurveTo(205 * scale, 382.5 * scale, 205 * scale, 382.5 * scale, 213 * scale, 377 * scale); ctx.bezierCurveTo(167 * scale, 352 * scale, 117 * scale, 345 * scale, 69 * scale, 355 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(77, 45, 20) rgb(67, 37, 22) ctx.globalAlpha = 1; ctx.translate(-20 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 351 * scale); ctx.bezierCurveTo(129 * scale, 218 * scale, 129 * scale, 218 * scale, 147 * scale, 85 * scale); ctx.bezierCurveTo(167 * scale, 65.5 * scale, 167 * scale, 65.5 * scale, 187 * scale, 46 * scale); ctx.bezierCurveTo(201.5 * scale, 70.5 * scale, 201.5 * scale, 70.5 * scale, 216 * scale, 95 * scale); ctx.bezierCurveTo(194.5 * scale, 227.5 * scale, 194.5 * scale, 227.5 * scale, 173 * scale, 360 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(147, 147, 147) rgb(95, 96, 97) ctx.save(); ctx.translate(131 * scale, 425.5 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -56.5 * scale, 28 * scale, 113 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(77, 45, 20) rgb(67, 37, 22) circle(ctx, 122 * scale, 480 * scale, 18.439088914585774 * scale); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(77, 45, 20) rgb(67, 37, 22) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 371 * scale); ctx.bezierCurveTo(131 * scale, 373 * scale, 145 * scale, 378 * scale, 197 * scale, 388 * scale); ctx.bezierCurveTo(205 * scale, 382.5 * scale, 205 * scale, 382.5 * scale, 213 * scale, 377 * scale); ctx.bezierCurveTo(167 * scale, 352 * scale, 117 * scale, 345 * scale, 69 * scale, 355 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(77, 45, 20) rgb(67, 37, 22) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(128 * scale, 345 * scale); ctx.bezierCurveTo(142 * scale, 345 * scale, 147 * scale, 346 * scale, 158 * scale, 349 * scale); ctx.bezierCurveTo(177.5 * scale, 224.5 * scale, 177.5 * scale, 224.5 * scale, 197 * scale, 100 * scale); ctx.bezierCurveTo(190.5 * scale, 84.5 * scale, 190.5 * scale, 84.5 * scale, 184 * scale, 69 * scale); ctx.bezierCurveTo(173.5 * scale, 82 * scale, 173.5 * scale, 82 * scale, 163 * scale, 95 * scale); ctx.closePath(); fill_path(ctx, color[3]); //rgb(173, 173, 173)*/ return can; } function create_crab(scale, useless, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 283 * scale; can.height = 224 * scale; ctx.translate(0, 15 * scale); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 55 * scale); ctx.bezierCurveTo(127 * scale, 27 * scale, 195 * scale, 42 * scale, 213 * scale, 78 * scale); ctx.bezierCurveTo(254 * scale, 134 * scale, 226 * scale, 198 * scale, 153 * scale, 197 * scale); ctx.bezierCurveTo(59 * scale, 204 * scale, 56 * scale, 158 * scale, 51 * scale, 115 * scale); ctx.bezierCurveTo(50 * scale, 93 * scale, 81 * scale, 62 * scale, 90 * scale, 57 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#d32eda #a2d81f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 33 * scale); ctx.bezierCurveTo(85 * scale, 62 * scale, 102 * scale, 66 * scale, 110 * scale, 83 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(181 * scale, 32 * scale); ctx.bezierCurveTo(196 * scale, 62 * scale, 181 * scale, 68 * scale, 178 * scale, 69 * scale); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 52 * scale); ctx.bezierCurveTo(228 * scale, 78 * scale, 207 * scale, 77 * scale, 192 * scale, 88 * scale); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 134 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 57 * scale, 111 * scale, 79 * scale, 109 * scale); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(249 * scale, 135 * scale); ctx.bezierCurveTo(233 * scale, 107 * scale, 212 * scale, 112 * scale, 202 * scale, 115 * scale); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 50 * scale); ctx.bezierCurveTo(56 * scale, 82 * scale, 73 * scale, 82 * scale, 93 * scale, 89 * scale); fill_path(ctx, color[0]); //#b75a3d #a2241f ctx.translate(0, -15 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 33 * scale); ctx.bezierCurveTo(85 * scale, 62 * scale, 102 * scale, 66 * scale, 110 * scale, 83 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(181 * scale, 32 * scale); ctx.bezierCurveTo(196 * scale, 62 * scale, 181 * scale, 68 * scale, 178 * scale, 69 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 52 * scale); ctx.bezierCurveTo(228 * scale, 78 * scale, 207 * scale, 77 * scale, 192 * scale, 88 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 134 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 57 * scale, 111 * scale, 79 * scale, 109 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(249 * scale, 135 * scale); ctx.bezierCurveTo(233 * scale, 107 * scale, 212 * scale, 112 * scale, 202 * scale, 115 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 50 * scale); ctx.bezierCurveTo(56 * scale, 82 * scale, 73 * scale, 82 * scale, 93 * scale, 89 * scale); fill_path(ctx, undefined, color[2], 40 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 55 * scale); ctx.bezierCurveTo(127 * scale, 27 * scale, 195 * scale, 42 * scale, 213 * scale, 78 * scale); ctx.bezierCurveTo(254 * scale, 134 * scale, 226 * scale, 198 * scale, 153 * scale, 197 * scale); ctx.bezierCurveTo(59 * scale, 204 * scale, 56 * scale, 158 * scale, 51 * scale, 115 * scale); ctx.bezierCurveTo(50 * scale, 93 * scale, 81 * scale, 62 * scale, 90 * scale, 57 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#d32eda #a2d81f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 33 * scale); ctx.bezierCurveTo(85 * scale, 62 * scale, 102 * scale, 66 * scale, 110 * scale, 83 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(181 * scale, 32 * scale); ctx.bezierCurveTo(196 * scale, 62 * scale, 181 * scale, 68 * scale, 178 * scale, 69 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 52 * scale); ctx.bezierCurveTo(228 * scale, 78 * scale, 207 * scale, 77 * scale, 192 * scale, 88 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 134 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 57 * scale, 111 * scale, 79 * scale, 109 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(249 * scale, 135 * scale); ctx.bezierCurveTo(233 * scale, 107 * scale, 212 * scale, 112 * scale, 202 * scale, 115 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 50 * scale); ctx.bezierCurveTo(56 * scale, 82 * scale, 73 * scale, 82 * scale, 93 * scale, 89 * scale); fill_path(ctx, undefined, color[1], 20 * scale); //#b75a3d #a2241f circle(ctx, 101 * scale, 155 * scale, 20.591260281974 * scale); fill_path(ctx, color[3]); //#d1213d circle(ctx, 180 * scale, 155 * scale, 20.591260281974 * scale); fill_path(ctx, color[3]); //#ff2efb circle(ctx, 95 * scale, 148 * scale, 7.211102550927978 * scale); fill_path(ctx, color[4]); //#d32eda circle(ctx, 173 * scale, 148 * scale, 7.211102550927978 * scale); fill_path(ctx, color[4]); //#d32e45 if (i === 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(191 * scale, 107 * scale); ctx.bezierCurveTo(180 * scale, 104 * scale, 175 * scale, 101 * scale, 180 * scale, 95 * scale); ctx.bezierCurveTo(180 * scale, 95 * scale, 181 * scale, 99 * scale, 188 * scale, 103 * scale); ctx.bezierCurveTo(191 * scale, 101 * scale, 191 * scale, 95 * scale, 190 * scale, 91 * scale); ctx.bezierCurveTo(190 * scale, 91 * scale, 196 * scale, 89 * scale, 195 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(206 * scale, 98 * scale); ctx.bezierCurveTo(203 * scale, 95 * scale, 200 * scale, 93 * scale, 198 * scale, 101 * scale); ctx.bezierCurveTo(194 * scale, 109 * scale, 193 * scale, 109 * scale, 196 * scale, 110 * scale); ctx.bezierCurveTo(206 * scale, 115 * scale, 209 * scale, 114 * scale, 211 * scale, 111 * scale); ctx.bezierCurveTo(211 * scale, 106 * scale, 208 * scale, 108 * scale, 203 * scale, 108 * scale); ctx.bezierCurveTo(193 * scale, 107 * scale, 204 * scale, 101 * scale, 206 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(172 * scale, 111 * scale); ctx.bezierCurveTo(172 * scale, 106 * scale, 174 * scale, 105 * scale, 185 * scale, 109 * scale); ctx.bezierCurveTo(190 * scale, 109 * scale, 189 * scale, 114 * scale, 185 * scale, 120 * scale); ctx.bezierCurveTo(181 * scale, 125 * scale, 180 * scale, 126 * scale, 176 * scale, 122 * scale); ctx.bezierCurveTo(182 * scale, 119 * scale, 187 * scale, 110 * scale, 182 * scale, 112 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(202 * scale, 125 * scale); ctx.bezierCurveTo(197 * scale, 117 * scale, 193 * scale, 116 * scale, 193 * scale, 120 * scale); ctx.bezierCurveTo(192.5 * scale, 124.5 * scale, 192.5 * scale, 124.5 * scale, 192 * scale, 129 * scale); ctx.bezierCurveTo(188 * scale, 129 * scale, 187 * scale, 124 * scale, 189 * scale, 120 * scale); ctx.bezierCurveTo(191 * scale, 110 * scale, 192 * scale, 110 * scale, 200 * scale, 116 * scale); ctx.bezierCurveTo(208 * scale, 120 * scale, 207 * scale, 123 * scale, 202 * scale, 125 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#d32eda #a2241f } return can; } function create_hurt_crab(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 283 * scale; can.height = 224 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 33 * scale); ctx.bezierCurveTo(85 * scale, 62 * scale, 102 * scale, 66 * scale, 110 * scale, 83 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(181 * scale, 32 * scale); ctx.bezierCurveTo(196 * scale, 62 * scale, 181 * scale, 68 * scale, 178 * scale, 69 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 52 * scale); ctx.bezierCurveTo(228 * scale, 78 * scale, 207 * scale, 77 * scale, 192 * scale, 88 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 134 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 57 * scale, 111 * scale, 79 * scale, 109 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(249 * scale, 135 * scale); ctx.bezierCurveTo(233 * scale, 107 * scale, 212 * scale, 112 * scale, 202 * scale, 115 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 50 * scale); ctx.bezierCurveTo(56 * scale, 82 * scale, 73 * scale, 82 * scale, 93 * scale, 89 * scale); fill_path(ctx, undefined, color[0], 40 * scale); //#d32eda #a2241f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 55 * scale); ctx.bezierCurveTo(124 * scale, 29 * scale, 179 * scale, 44 * scale, 188 * scale, 52 * scale); ctx.bezierCurveTo(207 * scale, 64 * scale, 226 * scale, 94 * scale, 231 * scale, 118 * scale); ctx.bezierCurveTo(236 * scale, 145 * scale, 222 * scale, 184 * scale, 193 * scale, 192 * scale); ctx.bezierCurveTo(147 * scale, 201 * scale, 116 * scale, 200 * scale, 93 * scale, 193 * scale); ctx.bezierCurveTo(61 * scale, 180 * scale, 48 * scale, 147 * scale, 50 * scale, 123 * scale); ctx.bezierCurveTo(50 * scale, 93 * scale, 76 * scale, 66 * scale, 92 * scale, 56 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#d32eda #a2241f return can; } function create_crab_claw_left(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 131 * scale; can.height = 121 * scale; ctx.translate(0, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110 * scale, 59 * scale); ctx.bezierCurveTo(93 * scale, 61.5 * scale, 93 * scale, 61.5 * scale, 76 * scale, 64 * scale); ctx.bezierCurveTo(84.5 * scale, 78.5 * scale, 84.5 * scale, 78.5 * scale, 93 * scale, 93 * scale); ctx.bezierCurveTo(70 * scale, 111 * scale, 43 * scale, 103 * scale, 30 * scale, 82 * scale); ctx.bezierCurveTo(17 * scale, 61 * scale, 25 * scale, 30 * scale, 51 * scale, 21 * scale); ctx.bezierCurveTo(66 * scale, 15 * scale, 83 * scale, 18 * scale, 96 * scale, 29 * scale); ctx.bezierCurveTo(104 * scale, 35 * scale, 109 * scale, 47 * scale, 110 * scale, 58 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110 * scale, 59 * scale); ctx.bezierCurveTo(93 * scale, 61.5 * scale, 93 * scale, 61.5 * scale, 76 * scale, 64 * scale); ctx.bezierCurveTo(84.5 * scale, 78.5 * scale, 84.5 * scale, 78.5 * scale, 93 * scale, 93 * scale); ctx.bezierCurveTo(70 * scale, 111 * scale, 43 * scale, 103 * scale, 30 * scale, 82 * scale); ctx.bezierCurveTo(17 * scale, 61 * scale, 25 * scale, 30 * scale, 51 * scale, 21 * scale); ctx.bezierCurveTo(66 * scale, 15 * scale, 83 * scale, 18 * scale, 96 * scale, 29 * scale); ctx.bezierCurveTo(104 * scale, 35 * scale, 109 * scale, 47 * scale, 110 * scale, 58 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#9e793d #5f461f return can; } function create_crab_claw_right(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 104 * scale; can.height = 112 * scale; ctx.translate(0, 15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 44 * scale); ctx.bezierCurveTo(30.5 * scale, 48 * scale, 30.5 * scale, 48 * scale, 45 * scale, 52 * scale); ctx.bezierCurveTo(36.5 * scale, 63 * scale, 36.5 * scale, 63 * scale, 28 * scale, 74 * scale); ctx.bezierCurveTo(32 * scale, 86 * scale, 61 * scale, 92 * scale, 78 * scale, 76 * scale); ctx.bezierCurveTo(93 * scale, 62 * scale, 92 * scale, 40 * scale, 80 * scale, 26 * scale); ctx.bezierCurveTo(65 * scale, 11 * scale, 42 * scale, 16 * scale, 34 * scale, 21 * scale); ctx.bezierCurveTo(22 * scale, 27 * scale, 16 * scale, 39 * scale, 16 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(16 * scale, 44 * scale); ctx.bezierCurveTo(30.5 * scale, 48 * scale, 30.5 * scale, 48 * scale, 45 * scale, 52 * scale); ctx.bezierCurveTo(36.5 * scale, 63 * scale, 36.5 * scale, 63 * scale, 28 * scale, 74 * scale); ctx.bezierCurveTo(32 * scale, 86 * scale, 61 * scale, 92 * scale, 78 * scale, 76 * scale); ctx.bezierCurveTo(93 * scale, 62 * scale, 92 * scale, 40 * scale, 80 * scale, 26 * scale); ctx.bezierCurveTo(65 * scale, 11 * scale, 42 * scale, 16 * scale, 34 * scale, 21 * scale); ctx.bezierCurveTo(22 * scale, 27 * scale, 16 * scale, 39 * scale, 16 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f return can; } function create_crab_stick(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 321 * scale; can.height = 284 * scale; ctx.translate(100 * scale, 30 * scale); ctx.translate(5 * scale, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#ff793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#ff793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(167 * scale, 120 * scale); ctx.bezierCurveTo(196 * scale, 106 * scale, 207 * scale, 111 * scale, 199 * scale, 135 * scale); ctx.bezierCurveTo(185 * scale, 172 * scale, 166 * scale, 187 * scale, 145 * scale, 179 * scale); ctx.bezierCurveTo(118 * scale, 166 * scale, 127 * scale, 139 * scale, 166 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#ffde3d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25 * scale, 64 * scale); ctx.bezierCurveTo(59 * scale, 96 * scale, 97 * scale, 128 * scale, 129 * scale, 151 * scale); ctx.bezierCurveTo(126 * scale, 163 * scale, 134 * scale, 174 * scale, 142 * scale, 180 * scale); ctx.bezierCurveTo(114 * scale, 170 * scale, 68 * scale, 134 * scale, 31 * scale, 85 * scale); ctx.bezierCurveTo(24 * scale, 71 * scale, 24 * scale, 70 * scale, 25 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#ff7990 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 141 * scale); ctx.bezierCurveTo(181 * scale, 131 * scale, 186 * scale, 135 * scale, 173 * scale, 152 * scale); ctx.bezierCurveTo(163 * scale, 163 * scale, 155 * scale, 161 * scale, 151 * scale, 150 * scale); ctx.bezierCurveTo(147 * scale, 140 * scale, 155 * scale, 131 * scale, 175 * scale, 125 * scale); ctx.bezierCurveTo(190 * scale, 120 * scale, 196 * scale, 121 * scale, 189 * scale, 143 * scale); ctx.bezierCurveTo(182 * scale, 167 * scale, 169 * scale, 174 * scale, 157 * scale, 174 * scale); ctx.bezierCurveTo(138 * scale, 172 * scale, 139 * scale, 162 * scale, 140 * scale, 156 * scale); fill_path(ctx, undefined, color[4], 4 * scale); //#ffde3d #5f461f ctx.translate(-100 * scale, -30 * scale); ctx.translate(10 * scale, 70 * scale); ctx.translate(5 * scale, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#ff793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#ff793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(167 * scale, 120 * scale); ctx.bezierCurveTo(196 * scale, 106 * scale, 207 * scale, 111 * scale, 199 * scale, 135 * scale); ctx.bezierCurveTo(185 * scale, 172 * scale, 166 * scale, 187 * scale, 145 * scale, 179 * scale); ctx.bezierCurveTo(118 * scale, 166 * scale, 127 * scale, 139 * scale, 166 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#ffde3d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25 * scale, 64 * scale); ctx.bezierCurveTo(59 * scale, 96 * scale, 97 * scale, 128 * scale, 129 * scale, 151 * scale); ctx.bezierCurveTo(126 * scale, 163 * scale, 134 * scale, 174 * scale, 142 * scale, 180 * scale); ctx.bezierCurveTo(114 * scale, 170 * scale, 68 * scale, 134 * scale, 31 * scale, 85 * scale); ctx.bezierCurveTo(24 * scale, 71 * scale, 24 * scale, 70 * scale, 25 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#ff7990 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 141 * scale); ctx.bezierCurveTo(181 * scale, 131 * scale, 186 * scale, 135 * scale, 173 * scale, 152 * scale); ctx.bezierCurveTo(163 * scale, 163 * scale, 155 * scale, 161 * scale, 151 * scale, 150 * scale); ctx.bezierCurveTo(147 * scale, 140 * scale, 155 * scale, 131 * scale, 175 * scale, 125 * scale); ctx.bezierCurveTo(190 * scale, 120 * scale, 196 * scale, 121 * scale, 189 * scale, 143 * scale); ctx.bezierCurveTo(182 * scale, 167 * scale, 169 * scale, 174 * scale, 157 * scale, 174 * scale); ctx.bezierCurveTo(138 * scale, 172 * scale, 139 * scale, 162 * scale, 140 * scale, 156 * scale); fill_path(ctx, undefined, color[4], 4 * scale); //#ffde3d #5f461f ctx.translate(20 * scale, -80 * scale); ctx.translate(5 * scale, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#ff793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 33 * scale); ctx.bezierCurveTo(81 * scale, 22 * scale, 93 * scale, 26 * scale, 123 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 73 * scale, 169 * scale, 80 * scale, 191 * scale, 99 * scale); ctx.bezierCurveTo(202 * scale, 107 * scale, 211 * scale, 118 * scale, 195 * scale, 151 * scale); ctx.bezierCurveTo(181 * scale, 183 * scale, 157 * scale, 192 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(78 * scale, 140 * scale, 68 * scale, 129 * scale, 37 * scale, 94 * scale); ctx.bezierCurveTo(15 * scale, 68 * scale, 25 * scale, 52 * scale, 56 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#ff793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(167 * scale, 120 * scale); ctx.bezierCurveTo(196 * scale, 106 * scale, 207 * scale, 111 * scale, 199 * scale, 135 * scale); ctx.bezierCurveTo(185 * scale, 172 * scale, 166 * scale, 187 * scale, 145 * scale, 179 * scale); ctx.bezierCurveTo(118 * scale, 166 * scale, 127 * scale, 139 * scale, 166 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#ffde3d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25 * scale, 64 * scale); ctx.bezierCurveTo(59 * scale, 96 * scale, 97 * scale, 128 * scale, 129 * scale, 151 * scale); ctx.bezierCurveTo(126 * scale, 163 * scale, 134 * scale, 174 * scale, 142 * scale, 180 * scale); ctx.bezierCurveTo(114 * scale, 170 * scale, 68 * scale, 134 * scale, 31 * scale, 85 * scale); ctx.bezierCurveTo(24 * scale, 71 * scale, 24 * scale, 70 * scale, 25 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#ff7990 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 141 * scale); ctx.bezierCurveTo(181 * scale, 131 * scale, 186 * scale, 135 * scale, 173 * scale, 152 * scale); ctx.bezierCurveTo(163 * scale, 163 * scale, 155 * scale, 161 * scale, 151 * scale, 150 * scale); ctx.bezierCurveTo(147 * scale, 140 * scale, 155 * scale, 131 * scale, 175 * scale, 125 * scale); ctx.bezierCurveTo(190 * scale, 120 * scale, 196 * scale, 121 * scale, 189 * scale, 143 * scale); ctx.bezierCurveTo(182 * scale, 167 * scale, 169 * scale, 174 * scale, 157 * scale, 174 * scale); ctx.bezierCurveTo(138 * scale, 172 * scale, 139 * scale, 162 * scale, 140 * scale, 156 * scale); fill_path(ctx, undefined, color[4], 4 * scale); //#ffde3d #5f461f return can; } function create_goldsword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 290 * scale; can.height = 525 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(20 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 351 * scale); ctx.bezierCurveTo(128.5 * scale, 218.5 * scale, 128.5 * scale, 218.5 * scale, 146 * scale, 86 * scale); ctx.bezierCurveTo(166.5 * scale, 66.5 * scale, 166.5 * scale, 66.5 * scale, 187 * scale, 47 * scale); ctx.bezierCurveTo(201 * scale, 71.5 * scale, 201 * scale, 71.5 * scale, 215 * scale, 96 * scale); ctx.bezierCurveTo(193 * scale, 228.5 * scale, 193 * scale, 228.5 * scale, 171 * scale, 361 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(196, 188, 81) rgb(178, 156, 50) ctx.save(); ctx.translate(129.5 * scale, 424 * scale); ctx.rotate(0.16); round_rect(ctx, -15.5 * scale, -63 * scale, 31 * scale, 126 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //rgb(196, 188, 81) rgb(178, 156, 50) circle(ctx, 121 * scale, 480 * scale, 20.396078054371138 * scale); fill_path(ctx, color[0]); //rgb(196, 188, 81) rgb(178, 156, 50) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90 * scale, 311 * scale); ctx.bezierCurveTo(95 * scale, 324 * scale, 95 * scale, 324 * scale, 100 * scale, 337 * scale); ctx.bezierCurveTo(141.5 * scale, 345.5 * scale, 141.5 * scale, 345.5 * scale, 183 * scale, 354 * scale); ctx.bezierCurveTo(193.5 * scale, 342.5 * scale, 193.5 * scale, 342.5 * scale, 204 * scale, 331 * scale); ctx.bezierCurveTo(202 * scale, 354 * scale, 202 * scale, 354 * scale, 200 * scale, 377 * scale); ctx.bezierCurveTo(147 * scale, 388 * scale, 106 * scale, 371 * scale, 79 * scale, 356 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(196, 188, 81) rgb(178, 156, 50) ctx.globalAlpha = 1; ctx.translate(-20 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 351 * scale); ctx.bezierCurveTo(128.5 * scale, 218.5 * scale, 128.5 * scale, 218.5 * scale, 146 * scale, 86 * scale); ctx.bezierCurveTo(166.5 * scale, 66.5 * scale, 166.5 * scale, 66.5 * scale, 187 * scale, 47 * scale); ctx.bezierCurveTo(201 * scale, 71.5 * scale, 201 * scale, 71.5 * scale, 215 * scale, 96 * scale); ctx.bezierCurveTo(193 * scale, 228.5 * scale, 193 * scale, 228.5 * scale, 171 * scale, 361 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(196, 188, 81) rgb(178, 156, 50) ctx.save(); ctx.translate(129.5 * scale, 424 * scale); ctx.rotate(0.16); round_rect(ctx, -15.5 * scale, -63 * scale, 31 * scale, 126 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(73, 62, 38) rgb(46, 38, 21) circle(ctx, 121 * scale, 480 * scale, 20.396078054371138 * scale); fill_path(ctx, color[4], color[5], 12.5 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90 * scale, 311 * scale); ctx.bezierCurveTo(95 * scale, 324 * scale, 95 * scale, 324 * scale, 100 * scale, 337 * scale); ctx.bezierCurveTo(141.5 * scale, 345.5 * scale, 141.5 * scale, 345.5 * scale, 183 * scale, 354 * scale); ctx.bezierCurveTo(193.5 * scale, 342.5 * scale, 193.5 * scale, 342.5 * scale, 204 * scale, 331 * scale); ctx.bezierCurveTo(202 * scale, 354 * scale, 202 * scale, 354 * scale, 200 * scale, 377 * scale); ctx.bezierCurveTo(147 * scale, 388 * scale, 106 * scale, 371 * scale, 79 * scale, 356 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //#ffff93 #bcbb00 return can; } function create_diamondsword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 290 * scale; can.height = 525 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(20 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(112 * scale, 356 * scale); ctx.bezierCurveTo(124 * scale, 220.5 * scale, 124 * scale, 220.5 * scale, 136 * scale, 85 * scale); ctx.bezierCurveTo(162.5 * scale, 65.5 * scale, 162.5 * scale, 65.5 * scale, 189 * scale, 46 * scale); ctx.bezierCurveTo(208.5 * scale, 72.5 * scale, 208.5 * scale, 72.5 * scale, 228 * scale, 99 * scale); ctx.bezierCurveTo(200 * scale, 232 * scale, 200 * scale, 232 * scale, 172 * scale, 365 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(106, 217, 232) ctx.save(); ctx.translate(131 * scale, 423 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -53 * scale, 28 * scale, 106 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //rgb(106, 217, 232) ctx.save(); ctx.translate(122 * scale, 480 * scale); ctx.rotate(1.72); round_regular_polygon(ctx, 4, 26.476404589747453 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //rgb(106, 217, 232) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210 * scale, 387 * scale); ctx.bezierCurveTo(138 * scale, 376 * scale, 138 * scale, 376 * scale, 66 * scale, 365 * scale); ctx.bezierCurveTo(76 * scale, 355 * scale, 76 * scale, 355 * scale, 86 * scale, 345 * scale); ctx.bezierCurveTo(99 * scale, 346.5 * scale, 99 * scale, 346.5 * scale, 112 * scale, 348 * scale); ctx.bezierCurveTo(128.5 * scale, 344 * scale, 128.5 * scale, 344 * scale, 145 * scale, 340 * scale); ctx.bezierCurveTo(158 * scale, 348 * scale, 158 * scale, 348 * scale, 171 * scale, 356 * scale); ctx.bezierCurveTo(184 * scale, 358 * scale, 184 * scale, 358 * scale, 197 * scale, 360 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(106, 217, 232) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(129 * scale, 338 * scale); ctx.bezierCurveTo(137 * scale, 336 * scale, 137 * scale, 336 * scale, 145 * scale, 334 * scale); ctx.bezierCurveTo(152.5 * scale, 338 * scale, 152.5 * scale, 338 * scale, 160 * scale, 342 * scale); ctx.bezierCurveTo(184 * scale, 224 * scale, 184 * scale, 224 * scale, 208 * scale, 106 * scale); ctx.bezierCurveTo(197 * scale, 88 * scale, 187 * scale, 70 * scale, 186 * scale, 70 * scale); ctx.bezierCurveTo(169.5 * scale, 83 * scale, 169.5 * scale, 83 * scale, 153 * scale, 96 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(106, 217, 232) ctx.globalAlpha = 1; ctx.translate(-20 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(112 * scale, 356 * scale); ctx.bezierCurveTo(124 * scale, 220.5 * scale, 124 * scale, 220.5 * scale, 136 * scale, 85 * scale); ctx.bezierCurveTo(162.5 * scale, 65.5 * scale, 162.5 * scale, 65.5 * scale, 189 * scale, 46 * scale); ctx.bezierCurveTo(208.5 * scale, 72.5 * scale, 208.5 * scale, 72.5 * scale, 228 * scale, 99 * scale); ctx.bezierCurveTo(200 * scale, 232 * scale, 200 * scale, 232 * scale, 172 * scale, 365 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(99, 201, 214) rgb(41, 170, 161) ctx.save(); ctx.translate(131 * scale, 423 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -53 * scale, 28 * scale, 106 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(38, 33, 20) rgb(26, 15, 7) ctx.save(); ctx.translate(122 * scale, 480 * scale); ctx.rotate(1.72); round_regular_polygon(ctx, 4, 26.476404589747453 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(99, 201, 214) rgb(41, 170, 161) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210 * scale, 387 * scale); ctx.bezierCurveTo(138 * scale, 376 * scale, 138 * scale, 376 * scale, 66 * scale, 365 * scale); ctx.bezierCurveTo(76 * scale, 355 * scale, 76 * scale, 355 * scale, 86 * scale, 345 * scale); ctx.bezierCurveTo(99 * scale, 346.5 * scale, 99 * scale, 346.5 * scale, 112 * scale, 348 * scale); ctx.bezierCurveTo(128.5 * scale, 344 * scale, 128.5 * scale, 344 * scale, 145 * scale, 340 * scale); ctx.bezierCurveTo(158 * scale, 348 * scale, 158 * scale, 348 * scale, 171 * scale, 356 * scale); ctx.bezierCurveTo(184 * scale, 358 * scale, 184 * scale, 358 * scale, 197 * scale, 360 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(99, 201, 214) rgb(41, 170, 161) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(129 * scale, 338 * scale); ctx.bezierCurveTo(137 * scale, 336 * scale, 137 * scale, 336 * scale, 145 * scale, 334 * scale); ctx.bezierCurveTo(152.5 * scale, 338 * scale, 152.5 * scale, 338 * scale, 160 * scale, 342 * scale); ctx.bezierCurveTo(184 * scale, 224 * scale, 184 * scale, 224 * scale, 208 * scale, 106 * scale); ctx.bezierCurveTo(197 * scale, 88 * scale, 187 * scale, 70 * scale, 186 * scale, 70 * scale); ctx.bezierCurveTo(169.5 * scale, 83 * scale, 169.5 * scale, 83 * scale, 153 * scale, 96 * scale); ctx.closePath(); fill_path(ctx, color[3]); //rgb(106, 217, 232) ctx.globalAlpha = 0.3; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(134 * scale, 178 * scale); ctx.bezierCurveTo(174 * scale, 157 * scale, 174 * scale, 157 * scale, 214 * scale, 136 * scale); ctx.bezierCurveTo(211.5 * scale, 147.5 * scale, 211.5 * scale, 147.5 * scale, 209 * scale, 159 * scale); ctx.bezierCurveTo(170.5 * scale, 181 * scale, 170.5 * scale, 181 * scale, 132 * scale, 203 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#ffffff ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 215 * scale); ctx.bezierCurveTo(192 * scale, 183 * scale, 168 * scale, 195 * scale, 206 * scale, 175 * scale); ctx.bezierCurveTo(200 * scale, 205 * scale, 200 * scale, 205 * scale, 194 * scale, 235 * scale); ctx.bezierCurveTo(159.5 * scale, 251 * scale, 159.5 * scale, 251 * scale, 125 * scale, 267 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#ffffff return can; } function create_amesword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 290 * scale; can.height = 525 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(20 * scale, 20 * scale); ctx.translate(-20 * scale, -20 * scale); ctx.save(); ctx.translate(132 * scale, 423 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -61 * scale, 28 * scale, 122 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 344 * scale); ctx.bezierCurveTo(123 * scale, 214 * scale, 123 * scale, 214 * scale, 146 * scale, 84 * scale); ctx.bezierCurveTo(166.5 * scale, 65 * scale, 166.5 * scale, 65 * scale, 187 * scale, 46 * scale); ctx.bezierCurveTo(201 * scale, 71 * scale, 201 * scale, 71 * scale, 215 * scale, 96 * scale); ctx.bezierCurveTo(199.5 * scale, 226.5 * scale, 199.5 * scale, 226.5 * scale, 184 * scale, 357 * scale); ctx.bezierCurveTo(162.5 * scale, 362.5 * scale, 162.5 * scale, 362.5 * scale, 141 * scale, 368 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(75 * scale, 328 * scale); ctx.bezierCurveTo(88 * scale, 336.5 * scale, 88 * scale, 336.5 * scale, 101 * scale, 345 * scale); ctx.bezierCurveTo(123.5 * scale, 337.5 * scale, 123.5 * scale, 337.5 * scale, 146 * scale, 330 * scale); ctx.bezierCurveTo(165 * scale, 343.5 * scale, 165 * scale, 343.5 * scale, 184 * scale, 357 * scale); ctx.bezierCurveTo(198.5 * scale, 353 * scale, 198.5 * scale, 353 * scale, 213 * scale, 349 * scale); ctx.bezierCurveTo(200.5 * scale, 364.5 * scale, 200.5 * scale, 364.5 * scale, 188 * scale, 380 * scale); ctx.bezierCurveTo(163 * scale, 380.5 * scale, 163 * scale, 380.5 * scale, 138 * scale, 381 * scale); ctx.bezierCurveTo(112 * scale, 373.5 * scale, 112 * scale, 373.5 * scale, 86 * scale, 366 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(121 * scale, 332 * scale); ctx.bezierCurveTo(133.5 * scale, 327.5 * scale, 133.5 * scale, 327.5 * scale, 146 * scale, 323 * scale); ctx.bezierCurveTo(157 * scale, 330.5 * scale, 157 * scale, 330.5 * scale, 168 * scale, 338 * scale); ctx.bezierCurveTo(182.5 * scale, 219.5 * scale, 182.5 * scale, 219.5 * scale, 197 * scale, 101 * scale); ctx.bezierCurveTo(190 * scale, 84.5 * scale, 190 * scale, 84.5 * scale, 183 * scale, 68 * scale); ctx.bezierCurveTo(172.5 * scale, 81 * scale, 172.5 * scale, 81 * scale, 162 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 463 * scale); ctx.bezierCurveTo(124.5 * scale, 466 * scale, 124.5 * scale, 466 * scale, 144 * scale, 469 * scale); ctx.bezierCurveTo(145.5 * scale, 478.5 * scale, 145.5 * scale, 478.5 * scale, 147 * scale, 488 * scale); ctx.bezierCurveTo(133.5 * scale, 495.5 * scale, 133.5 * scale, 495.5 * scale, 120 * scale, 503 * scale); ctx.bezierCurveTo(108.5 * scale, 492 * scale, 108.5 * scale, 492 * scale, 97 * scale, 481 * scale); ctx.closePath(); fill_path(ctx, color[0]); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.globalAlpha = 1; ctx.translate(-20 * scale, -20 * scale); ctx.save(); ctx.translate(132 * scale, 423 * scale); ctx.rotate(0.16); round_rect(ctx, -14 * scale, -61 * scale, 28 * scale, 122 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 12.5 * scale); //rgb(38, 33, 20) rgb(26, 15, 7) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 344 * scale); ctx.bezierCurveTo(123 * scale, 214 * scale, 123 * scale, 214 * scale, 146 * scale, 84 * scale); ctx.bezierCurveTo(166.5 * scale, 65 * scale, 166.5 * scale, 65 * scale, 187 * scale, 46 * scale); ctx.bezierCurveTo(201 * scale, 71 * scale, 201 * scale, 71 * scale, 215 * scale, 96 * scale); ctx.bezierCurveTo(199.5 * scale, 226.5 * scale, 199.5 * scale, 226.5 * scale, 184 * scale, 357 * scale); ctx.bezierCurveTo(162.5 * scale, 362.5 * scale, 162.5 * scale, 362.5 * scale, 141 * scale, 368 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(75 * scale, 328 * scale); ctx.bezierCurveTo(88 * scale, 336.5 * scale, 88 * scale, 336.5 * scale, 101 * scale, 345 * scale); ctx.bezierCurveTo(123.5 * scale, 337.5 * scale, 123.5 * scale, 337.5 * scale, 146 * scale, 330 * scale); ctx.bezierCurveTo(165 * scale, 343.5 * scale, 165 * scale, 343.5 * scale, 184 * scale, 357 * scale); ctx.bezierCurveTo(198.5 * scale, 353 * scale, 198.5 * scale, 353 * scale, 213 * scale, 349 * scale); ctx.bezierCurveTo(200.5 * scale, 364.5 * scale, 200.5 * scale, 364.5 * scale, 188 * scale, 380 * scale); ctx.bezierCurveTo(163 * scale, 380.5 * scale, 163 * scale, 380.5 * scale, 138 * scale, 381 * scale); ctx.bezierCurveTo(112 * scale, 373.5 * scale, 112 * scale, 373.5 * scale, 86 * scale, 366 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(121 * scale, 332 * scale); ctx.bezierCurveTo(133.5 * scale, 327.5 * scale, 133.5 * scale, 327.5 * scale, 146 * scale, 323 * scale); ctx.bezierCurveTo(157 * scale, 330.5 * scale, 157 * scale, 330.5 * scale, 168 * scale, 338 * scale); ctx.bezierCurveTo(182.5 * scale, 219.5 * scale, 182.5 * scale, 219.5 * scale, 197 * scale, 101 * scale); ctx.bezierCurveTo(190 * scale, 84.5 * scale, 190 * scale, 84.5 * scale, 183 * scale, 68 * scale); ctx.bezierCurveTo(172.5 * scale, 81 * scale, 172.5 * scale, 81 * scale, 162 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, color[3]); //rgb(218, 119, 255) ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 463 * scale); ctx.bezierCurveTo(124.5 * scale, 466 * scale, 124.5 * scale, 466 * scale, 144 * scale, 469 * scale); ctx.bezierCurveTo(145.5 * scale, 478.5 * scale, 145.5 * scale, 478.5 * scale, 147 * scale, 488 * scale); ctx.bezierCurveTo(133.5 * scale, 495.5 * scale, 133.5 * scale, 495.5 * scale, 120 * scale, 503 * scale); ctx.bezierCurveTo(108.5 * scale, 492 * scale, 108.5 * scale, 492 * scale, 97 * scale, 481 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12.5 * scale); //rgb(184, 100, 214) rgb(140, 41, 170) ctx.globalAlpha = 0.2; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(139 * scale, 157 * scale); ctx.bezierCurveTo(171.5 * scale, 145 * scale, 171.5 * scale, 145 * scale, 204 * scale, 133 * scale); ctx.bezierCurveTo(203 * scale, 144.5 * scale, 203 * scale, 144.5 * scale, 202 * scale, 156 * scale); ctx.bezierCurveTo(168.5 * scale, 168 * scale, 168.5 * scale, 168 * scale, 135 * scale, 180 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 192 * scale); ctx.bezierCurveTo(166.5 * scale, 181.5 * scale, 166.5 * scale, 181.5 * scale, 200 * scale, 171 * scale); ctx.bezierCurveTo(195.5 * scale, 205 * scale, 195.5 * scale, 205 * scale, 191 * scale, 239 * scale); ctx.bezierCurveTo(156 * scale, 249 * scale, 156 * scale, 249 * scale, 121 * scale, 259 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#000000 #000000 ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 346 * scale); ctx.bezierCurveTo(125 * scale, 352 * scale, 125 * scale, 352 * scale, 107 * scale, 358 * scale); ctx.bezierCurveTo(124 * scale, 363 * scale, 140 * scale, 368 * scale, 141 * scale, 368 * scale); ctx.bezierCurveTo(156.5 * scale, 367 * scale, 156.5 * scale, 367 * scale, 172 * scale, 366 * scale); ctx.closePath(); fill_path(ctx, color[3]); //rgb(218, 119, 255) return can; } function create_sugar_can(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 154 * scale; can.height = 261 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 69 * scale); ctx.bezierCurveTo(123.5 * scale, 141.5 * scale, 123.5 * scale, 141.5 * scale, 122 * scale, 214 * scale); ctx.bezierCurveTo(123 * scale, 228 * scale, 119 * scale, 239 * scale, 102 * scale, 239 * scale); ctx.bezierCurveTo(90 * scale, 238 * scale, 86 * scale, 225 * scale, 89 * scale, 197 * scale); ctx.bezierCurveTo(92 * scale, 159 * scale, 92 * scale, 141 * scale, 94 * scale, 84 * scale); ctx.bezierCurveTo(94 * scale, 58 * scale, 87 * scale, 50 * scale, 73 * scale, 52 * scale); ctx.bezierCurveTo(53 * scale, 54 * scale, 54 * scale, 92 * scale, 34 * scale, 87 * scale); ctx.bezierCurveTo(13 * scale, 85 * scale, 22 * scale, 58 * scale, 34 * scale, 40 * scale); ctx.bezierCurveTo(44 * scale, 24 * scale, 68 * scale, 17 * scale, 86 * scale, 21 * scale); ctx.bezierCurveTo(111 * scale, 23 * scale, 123 * scale, 39 * scale, 125 * scale, 67 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 69 * scale); ctx.bezierCurveTo(123.5 * scale, 141.5 * scale, 123.5 * scale, 141.5 * scale, 122 * scale, 214 * scale); ctx.bezierCurveTo(123 * scale, 228 * scale, 119 * scale, 239 * scale, 102 * scale, 239 * scale); ctx.bezierCurveTo(90 * scale, 238 * scale, 86 * scale, 225 * scale, 89 * scale, 197 * scale); ctx.bezierCurveTo(92 * scale, 159 * scale, 92 * scale, 141 * scale, 94 * scale, 84 * scale); ctx.bezierCurveTo(94 * scale, 58 * scale, 87 * scale, 50 * scale, 73 * scale, 52 * scale); ctx.bezierCurveTo(53 * scale, 54 * scale, 54 * scale, 92 * scale, 34 * scale, 87 * scale); ctx.bezierCurveTo(13 * scale, 85 * scale, 22 * scale, 58 * scale, 34 * scale, 40 * scale); ctx.bezierCurveTo(44 * scale, 24 * scale, 68 * scale, 17 * scale, 86 * scale, 21 * scale); ctx.bezierCurveTo(111 * scale, 23 * scale, 123 * scale, 39 * scale, 125 * scale, 67 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 43 * scale); ctx.bezierCurveTo(31 * scale, 61 * scale, 43 * scale, 70 * scale, 51 * scale, 75 * scale); ctx.bezierCurveTo(48 * scale, 84 * scale, 41 * scale, 89 * scale, 33 * scale, 86 * scale); ctx.bezierCurveTo(23 * scale, 88 * scale, 20 * scale, 76 * scale, 23 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(45 * scale, 29 * scale); ctx.bezierCurveTo(49 * scale, 45 * scale, 61 * scale, 54 * scale, 64 * scale, 55 * scale); ctx.bezierCurveTo(67.5 * scale, 53 * scale, 67.5 * scale, 53 * scale, 71 * scale, 51 * scale); ctx.bezierCurveTo(80 * scale, 44 * scale, 83 * scale, 33 * scale, 82 * scale, 20 * scale); ctx.bezierCurveTo(59 * scale, 17 * scale, 51 * scale, 23 * scale, 45 * scale, 30 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86 * scale, 56 * scale); ctx.bezierCurveTo(90 * scale, 33 * scale, 103 * scale, 25 * scale, 105 * scale, 27 * scale); ctx.bezierCurveTo(116 * scale, 31 * scale, 121 * scale, 45 * scale, 122 * scale, 50 * scale); ctx.bezierCurveTo(112 * scale, 62 * scale, 103 * scale, 63 * scale, 91 * scale, 62 * scale); ctx.bezierCurveTo(89 * scale, 59.5 * scale, 89 * scale, 59.5 * scale, 87 * scale, 57 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 81 * scale); ctx.bezierCurveTo(109 * scale, 82 * scale, 123 * scale, 70 * scale, 124 * scale, 63 * scale); ctx.bezierCurveTo(124 * scale, 75.5 * scale, 124 * scale, 75.5 * scale, 124 * scale, 88 * scale); ctx.bezierCurveTo(119 * scale, 99 * scale, 103 * scale, 103 * scale, 94 * scale, 103 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 124 * scale); ctx.bezierCurveTo(108 * scale, 125 * scale, 122 * scale, 113 * scale, 124 * scale, 106 * scale); ctx.bezierCurveTo(124 * scale, 119 * scale, 124 * scale, 129 * scale, 124 * scale, 132 * scale); ctx.bezierCurveTo(110 * scale, 147 * scale, 94 * scale, 148 * scale, 90 * scale, 147 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90 * scale, 170 * scale); ctx.bezierCurveTo(104 * scale, 166 * scale, 122 * scale, 158 * scale, 122 * scale, 151 * scale); ctx.bezierCurveTo(122 * scale, 162.5 * scale, 122 * scale, 162.5 * scale, 122 * scale, 174 * scale); ctx.bezierCurveTo(111 * scale, 191 * scale, 97 * scale, 191 * scale, 89 * scale, 191 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88 * scale, 208 * scale); ctx.bezierCurveTo(100 * scale, 209 * scale, 115 * scale, 205 * scale, 122 * scale, 193 * scale); ctx.bezierCurveTo(122 * scale, 205.5 * scale, 122 * scale, 205.5 * scale, 122 * scale, 218 * scale); ctx.bezierCurveTo(115 * scale, 229 * scale, 103 * scale, 235 * scale, 90 * scale, 228 * scale); ctx.bezierCurveTo(88 * scale, 224 * scale, 88 * scale, 217 * scale, 88 * scale, 211 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c0710 ctx.globalAlpha = 0.4; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(22 * scale, 81 * scale); ctx.bezierCurveTo(32 * scale, 84 * scale, 41 * scale, 81 * scale, 45 * scale, 68 * scale); ctx.bezierCurveTo(50 * scale, 50 * scale, 62 * scale, 40 * scale, 79 * scale, 43 * scale); ctx.bezierCurveTo(95 * scale, 45 * scale, 102 * scale, 58 * scale, 101 * scale, 81 * scale); ctx.bezierCurveTo(99.5 * scale, 120.5 * scale, 99.5 * scale, 120.5 * scale, 98 * scale, 160 * scale); ctx.bezierCurveTo(96.5 * scale, 191.5 * scale, 96.5 * scale, 191.5 * scale, 95 * scale, 223 * scale); ctx.bezierCurveTo(93 * scale, 232 * scale, 101 * scale, 235 * scale, 108 * scale, 238 * scale); ctx.bezierCurveTo(100 * scale, 240 * scale, 90 * scale, 233 * scale, 90 * scale, 224 * scale); ctx.bezierCurveTo(92 * scale, 157 * scale, 92 * scale, 157 * scale, 94 * scale, 90 * scale); ctx.bezierCurveTo(94 * scale, 56 * scale, 89 * scale, 53 * scale, 77 * scale, 51 * scale); ctx.bezierCurveTo(58 * scale, 50 * scale, 54 * scale, 59 * scale, 49 * scale, 75 * scale); ctx.bezierCurveTo(44 * scale, 91 * scale, 28 * scale, 90 * scale, 23 * scale, 81 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(82 * scale, 123 * scale); ctx.bezierCurveTo(88 * scale, 130 * scale, 88 * scale, 127 * scale, 94 * scale, 128 * scale); ctx.bezierCurveTo(91 * scale, 136 * scale, 94 * scale, 137 * scale, 99 * scale, 142 * scale); ctx.bezierCurveTo(97 * scale, 149 * scale, 99 * scale, 152 * scale, 105 * scale, 155 * scale); ctx.bezierCurveTo(107 * scale, 159 * scale, 113 * scale, 159 * scale, 120 * scale, 158 * scale); ctx.bezierCurveTo(121 * scale, 160 * scale, 125 * scale, 163 * scale, 132 * scale, 163 * scale); ctx.bezierCurveTo(133 * scale, 166 * scale, 136 * scale, 169 * scale, 138 * scale, 170 * scale); ctx.bezierCurveTo(133 * scale, 171 * scale, 132 * scale, 172 * scale, 129 * scale, 174 * scale); ctx.bezierCurveTo(122 * scale, 170 * scale, 120 * scale, 170 * scale, 116 * scale, 174 * scale); ctx.bezierCurveTo(108 * scale, 170.5 * scale, 108 * scale, 170.5 * scale, 100 * scale, 167 * scale); ctx.bezierCurveTo(95 * scale, 172 * scale, 94 * scale, 179 * scale, 95 * scale, 184 * scale); ctx.bezierCurveTo(87 * scale, 185 * scale, 87 * scale, 189 * scale, 88 * scale, 194 * scale); ctx.bezierCurveTo(82 * scale, 194 * scale, 81 * scale, 195 * scale, 79 * scale, 197 * scale); ctx.bezierCurveTo(78 * scale, 192 * scale, 78 * scale, 191 * scale, 77 * scale, 189 * scale); ctx.bezierCurveTo(81 * scale, 185 * scale, 82 * scale, 183 * scale, 80 * scale, 176 * scale); ctx.bezierCurveTo(89 * scale, 170 * scale, 92 * scale, 168 * scale, 95 * scale, 163 * scale); ctx.bezierCurveTo(91 * scale, 151 * scale, 88 * scale, 151 * scale, 82 * scale, 147 * scale); ctx.bezierCurveTo(85 * scale, 142 * scale, 85 * scale, 137 * scale, 81 * scale, 133 * scale); ctx.bezierCurveTo(84 * scale, 127 * scale, 84 * scale, 125 * scale, 82 * scale, 124 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#787329 #4c4743 circle(ctx, 107 * scale, 152 * scale, 9 * scale); fill_path(ctx, color[6]); //#787329 #4c4743 circle(ctx, 105 * scale, 173 * scale, 9 * scale); fill_path(ctx, color[6]); //#787329 #4c4743 circle(ctx, 87 * scale, 161 * scale, 9 * scale); fill_path(ctx, color[6]); //#787329 #4c4743 circle(ctx, 106 * scale, 147 * scale, 4 * scale); fill_path(ctx, color[7]); //#787329 #4c4743 circle(ctx, 104 * scale, 167 * scale, 4 * scale); fill_path(ctx, color[7]); //#787329 #4c4743 circle(ctx, 86 * scale, 154 * scale, 4 * scale); fill_path(ctx, color[7]); //#787329 #4c4743 return can; } function create_cookie(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 350 * scale; can.height = 140 * scale; ctx.translate(-50 * scale, -150 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(184.5 * scale, 222.0625 * scale); ctx.bezierCurveTo(185.5 * scale, 184.0625 * scale, 302.5 * scale, 171.0625 * scale, 313.5 * scale, 222.0625 * scale); ctx.bezierCurveTo(330.5 * scale, 263.0625 * scale, 181.5 * scale, 274.0625 * scale, 184.5 * scale, 223.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 8 * scale); //#c0995f #6f542d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131.5 * scale, 241.0625 * scale); ctx.bezierCurveTo(144.5 * scale, 278.0625 * scale, 270.5 * scale, 209.0625 * scale, 228.5 * scale, 174.0625 * scale); ctx.bezierCurveTo(196.5 * scale, 147.0625 * scale, 117.5 * scale, 196.0625 * scale, 131.5 * scale, 240.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 8 * scale); //#c0995f #6f542d circle(ctx, 270.5 * scale, 225.0625 * scale, 15.811388300841896 * scale); fill_path(ctx, color[2]); //#b68947 circle(ctx, 243.5 * scale, 225.0625 * scale, 6.082762530298219 * scale); fill_path(ctx, color[2]); //#b68947 circle(ctx, 255.5 * scale, 210.0625 * scale, 10.816653826391969 * scale); fill_path(ctx, color[2]); //#b68947 circle(ctx, 167.5 * scale, 215.0625 * scale, 15.297058540778355 * scale); fill_path(ctx, color[2]); //#b68947 circle(ctx, 176.5 * scale, 204.0625 * scale, 7.280109889280518 * scale); fill_path(ctx, color[2]); //#b68947 circle(ctx, 206.5 * scale, 189.0625 * scale, 7.280109889280518 * scale); fill_path(ctx, color[2]); //#b68947 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(151.5 * scale, 212.0625 * scale); ctx.bezierCurveTo(161.5 * scale, 204.0625 * scale, 173.5 * scale, 214.0625 * scale, 158.5 * scale, 221.0625 * scale); ctx.bezierCurveTo(145.5 * scale, 228.0625 * scale, 144.5 * scale, 216.0625 * scale, 151.5 * scale, 212.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#c0995f #6f542d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(194.5 * scale, 209.0625 * scale); ctx.bezierCurveTo(205.5 * scale, 202.0625 * scale, 215.5 * scale, 207.0625 * scale, 199.5 * scale, 217.0625 * scale); ctx.bezierCurveTo(187.5 * scale, 224.0625 * scale, 182.5 * scale, 217.0625 * scale, 194.5 * scale, 209.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#c0995f #6f542d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(188.5 * scale, 183.0625 * scale); ctx.bezierCurveTo(201.5 * scale, 176.0625 * scale, 213.5 * scale, 187.0625 * scale, 193.5 * scale, 193.0625 * scale); ctx.bezierCurveTo(185.5 * scale, 194.0625 * scale, 175.5 * scale, 189.0625 * scale, 188.5 * scale, 183.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#c0995f #6f542d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(261.5 * scale, 202.0625 * scale); ctx.bezierCurveTo(274.5 * scale, 201.0625 * scale, 282.5 * scale, 214.0625 * scale, 261.5 * scale, 215.0625 * scale); ctx.bezierCurveTo(246.5 * scale, 214.0625 * scale, 248.5 * scale, 203.0625 * scale, 261.5 * scale, 202.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#c0995f #6f542d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(240.5 * scale, 231.0625 * scale); ctx.bezierCurveTo(255.5 * scale, 231.0625 * scale, 254.5 * scale, 243.0625 * scale, 240.5 * scale, 242.0625 * scale); ctx.bezierCurveTo(225.5 * scale, 239.0625 * scale, 225.5 * scale, 232.0625 * scale, 240.5 * scale, 231.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#c0995f #6f542d return can; } function create_candy(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 217 * scale; can.height = 215 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 113 * scale); ctx.bezierCurveTo(135 * scale, 98 * scale, 136 * scale, 96 * scale, 142 * scale, 97 * scale); ctx.bezierCurveTo(167 * scale, 106 * scale, 167 * scale, 106 * scale, 171 * scale, 109 * scale); ctx.bezierCurveTo(173 * scale, 120 * scale, 173 * scale, 134 * scale, 169 * scale, 141 * scale); ctx.bezierCurveTo(140 * scale, 149.5 * scale, 140 * scale, 149.5 * scale, 111 * scale, 158 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(154 * scale, 103 * scale); ctx.bezierCurveTo(167 * scale, 91 * scale, 175 * scale, 87 * scale, 176 * scale, 94 * scale); ctx.bezierCurveTo(175 * scale, 102 * scale, 176 * scale, 102 * scale, 186 * scale, 103 * scale); ctx.bezierCurveTo(191 * scale, 104 * scale, 192 * scale, 105 * scale, 185 * scale, 116 * scale); ctx.bezierCurveTo(183 * scale, 120 * scale, 191 * scale, 124 * scale, 189 * scale, 129 * scale); ctx.bezierCurveTo(185 * scale, 139 * scale, 178 * scale, 134 * scale, 166 * scale, 131 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60 * scale, 46 * scale); ctx.bezierCurveTo(60 * scale, 34 * scale, 60 * scale, 29 * scale, 56 * scale, 19 * scale); ctx.bezierCurveTo(52 * scale, 12 * scale, 52 * scale, 16 * scale, 49 * scale, 24 * scale); ctx.bezierCurveTo(48 * scale, 27 * scale, 46 * scale, 28 * scale, 39 * scale, 27 * scale); ctx.bezierCurveTo(33 * scale, 26 * scale, 34 * scale, 31 * scale, 35 * scale, 37 * scale); ctx.bezierCurveTo(36 * scale, 41 * scale, 27 * scale, 46 * scale, 29 * scale, 52 * scale); ctx.bezierCurveTo(36 * scale, 55 * scale, 35 * scale, 56 * scale, 31 * scale, 59 * scale); ctx.bezierCurveTo(27 * scale, 65 * scale, 32 * scale, 64 * scale, 35 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46 * scale, 50 * scale); ctx.bezierCurveTo(51 * scale, 35 * scale, 70 * scale, 32 * scale, 78 * scale, 29 * scale); ctx.bezierCurveTo(84 * scale, 27 * scale, 113 * scale, 36 * scale, 127 * scale, 41 * scale); ctx.bezierCurveTo(140 * scale, 47 * scale, 147 * scale, 69 * scale, 137 * scale, 73 * scale); ctx.bezierCurveTo(124 * scale, 92 * scale, 117 * scale, 92 * scale, 109 * scale, 94 * scale); ctx.bezierCurveTo(101 * scale, 96 * scale, 89 * scale, 92 * scale, 65 * scale, 83 * scale); ctx.bezierCurveTo(54 * scale, 80 * scale, 46 * scale, 58 * scale, 46 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51 * scale, 40 * scale); ctx.bezierCurveTo(49 * scale, 34 * scale, 49 * scale, 34 * scale, 47 * scale, 28 * scale); ctx.bezierCurveTo(38 * scale, 28 * scale, 34 * scale, 27 * scale, 37 * scale, 37 * scale); ctx.bezierCurveTo(43 * scale, 40.5 * scale, 43 * scale, 40.5 * scale, 49 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(29 * scale, 48 * scale); ctx.bezierCurveTo(38 * scale, 49 * scale, 38 * scale, 49 * scale, 47 * scale, 50 * scale); ctx.bezierCurveTo(46.5 * scale, 51.5 * scale, 46.5 * scale, 51.5 * scale, 46 * scale, 53 * scale); ctx.bezierCurveTo(40 * scale, 53.5 * scale, 40 * scale, 53.5 * scale, 34 * scale, 54 * scale); ctx.bezierCurveTo(29 * scale, 51 * scale, 32 * scale, 51.5 * scale, 30 * scale, 49 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(89 * scale, 61 * scale); ctx.bezierCurveTo(101 * scale, 70 * scale, 109 * scale, 90 * scale, 102 * scale, 90 * scale); ctx.bezierCurveTo(97 * scale, 91 * scale, 87 * scale, 91 * scale, 60 * scale, 80 * scale); ctx.bezierCurveTo(48 * scale, 65 * scale, 46 * scale, 56 * scale, 48 * scale, 53 * scale); ctx.bezierCurveTo(50 * scale, 52 * scale, 66 * scale, 56 * scale, 89 * scale, 61 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99 * scale, 59 * scale); ctx.bezierCurveTo(115 * scale, 45 * scale, 125 * scale, 42 * scale, 129 * scale, 47 * scale); ctx.bezierCurveTo(138 * scale, 56 * scale, 140 * scale, 63 * scale, 138 * scale, 67 * scale); ctx.bezierCurveTo(131 * scale, 80 * scale, 122 * scale, 87 * scale, 114 * scale, 90 * scale); ctx.bezierCurveTo(105 * scale, 80 * scale, 95 * scale, 62 * scale, 98 * scale, 61 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 62 * scale); ctx.bezierCurveTo(139 * scale, 45 * scale, 153 * scale, 40 * scale, 150 * scale, 48 * scale); ctx.bezierCurveTo(145 * scale, 57 * scale, 157 * scale, 63 * scale, 157 * scale, 70 * scale); ctx.bezierCurveTo(157 * scale, 74 * scale, 142 * scale, 77 * scale, 142 * scale, 85 * scale); ctx.bezierCurveTo(143 * scale, 91 * scale, 141 * scale, 92 * scale, 135 * scale, 90 * scale); ctx.bezierCurveTo(132 * scale, 90 * scale, 132 * scale, 96 * scale, 124 * scale, 99 * scale); ctx.bezierCurveTo(118 * scale, 93 * scale, 116 * scale, 77 * scale, 116 * scale, 64 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90 * scale, 130 * scale); ctx.bezierCurveTo(157 * scale, 115 * scale, 165 * scale, 111 * scale, 167 * scale, 115 * scale); ctx.bezierCurveTo(170 * scale, 117 * scale, 171 * scale, 135 * scale, 167 * scale, 141 * scale); ctx.bezierCurveTo(135.5 * scale, 149.5 * scale, 135.5 * scale, 149.5 * scale, 104 * scale, 158 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53 * scale, 119 * scale); ctx.bezierCurveTo(46 * scale, 120 * scale, 40 * scale, 118 * scale, 34 * scale, 116 * scale); ctx.bezierCurveTo(28 * scale, 111 * scale, 41 * scale, 112 * scale, 39 * scale, 108 * scale); ctx.bezierCurveTo(36 * scale, 100 * scale, 49 * scale, 102 * scale, 53 * scale, 95 * scale); ctx.bezierCurveTo(57 * scale, 84 * scale, 58 * scale, 85 * scale, 63 * scale, 93 * scale); ctx.bezierCurveTo(68 * scale, 96 * scale, 72 * scale, 94 * scale, 80 * scale, 88 * scale); ctx.bezierCurveTo(80 * scale, 96 * scale, 78 * scale, 107 * scale, 66 * scale, 115 * scale); ctx.closePath(); fill_path(ctx, color[9], color[10], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 64 * scale); ctx.bezierCurveTo(133.5 * scale, 57 * scale, 133.5 * scale, 57 * scale, 149 * scale, 50 * scale); ctx.bezierCurveTo(145 * scale, 54 * scale, 154 * scale, 65 * scale, 157 * scale, 68 * scale); ctx.bezierCurveTo(138.5 * scale, 66.5 * scale, 138.5 * scale, 66.5 * scale, 120 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 65 * scale); ctx.bezierCurveTo(129 * scale, 77 * scale, 129 * scale, 77 * scale, 140 * scale, 89 * scale); ctx.bezierCurveTo(131 * scale, 89 * scale, 130 * scale, 92 * scale, 128 * scale, 96 * scale); ctx.bezierCurveTo(123.5 * scale, 82 * scale, 123.5 * scale, 82 * scale, 119 * scale, 68 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51 * scale, 112 * scale); ctx.bezierCurveTo(63 * scale, 108 * scale, 78 * scale, 111 * scale, 88 * scale, 112 * scale); ctx.bezierCurveTo(98 * scale, 122 * scale, 117 * scale, 136 * scale, 125 * scale, 157 * scale); ctx.bezierCurveTo(123 * scale, 180 * scale, 123 * scale, 185 * scale, 118 * scale, 186 * scale); ctx.bezierCurveTo(101 * scale, 190 * scale, 89 * scale, 191 * scale, 79 * scale, 187 * scale); ctx.bezierCurveTo(53 * scale, 165 * scale, 50 * scale, 153 * scale, 47 * scale, 144 * scale); ctx.bezierCurveTo(46 * scale, 128 * scale, 46 * scale, 124 * scale, 50 * scale, 112 * scale); ctx.closePath(); fill_path(ctx, color[9], color[10], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 114 * scale); ctx.bezierCurveTo(81 * scale, 149 * scale, 80 * scale, 147 * scale, 80 * scale, 149 * scale); ctx.bezierCurveTo(82 * scale, 155 * scale, 80 * scale, 182 * scale, 74 * scale, 182 * scale); ctx.bezierCurveTo(60 * scale, 172 * scale, 52 * scale, 157 * scale, 47 * scale, 144 * scale); ctx.closePath(); fill_path(ctx, color[11], color[11], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(85 * scale, 152 * scale); ctx.bezierCurveTo(99 * scale, 150 * scale, 109 * scale, 152 * scale, 119 * scale, 156 * scale); ctx.bezierCurveTo(122 * scale, 163 * scale, 122 * scale, 174 * scale, 117 * scale, 182 * scale); ctx.closePath(); ctx.bezierCurveTo(93 * scale, 188 * scale, 82 * scale, 187 * scale, 83 * scale, 179 * scale); fill_path(ctx, color[11], color[11], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(104 * scale, 166 * scale); ctx.bezierCurveTo(133 * scale, 165 * scale, 142 * scale, 168 * scale, 137 * scale, 173 * scale); ctx.bezierCurveTo(127 * scale, 177 * scale, 137 * scale, 195 * scale, 126 * scale, 196 * scale); ctx.bezierCurveTo(112 * scale, 195 * scale, 112 * scale, 194 * scale, 109 * scale, 199 * scale); ctx.bezierCurveTo(105 * scale, 205 * scale, 102 * scale, 195 * scale, 96 * scale, 197 * scale); ctx.bezierCurveTo(84 * scale, 201 * scale, 88 * scale, 198 * scale, 90 * scale, 187 * scale); ctx.bezierCurveTo(96 * scale, 171 * scale, 97 * scale, 170 * scale, 103 * scale, 167 * scale); ctx.closePath(); fill_path(ctx, color[9], color[10], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 168 * scale); ctx.bezierCurveTo(118 * scale, 172.5 * scale, 118 * scale, 172.5 * scale, 131 * scale, 177 * scale); ctx.bezierCurveTo(133 * scale, 190 * scale, 132 * scale, 199 * scale, 116 * scale, 194 * scale); ctx.bezierCurveTo(110 * scale, 182 * scale, 110 * scale, 182 * scale, 104 * scale, 170 * scale); ctx.closePath(); fill_path(ctx, color[10]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 169 * scale); ctx.bezierCurveTo(100.5 * scale, 182 * scale, 100.5 * scale, 182 * scale, 99 * scale, 195 * scale); ctx.bezierCurveTo(93.5 * scale, 196.5 * scale, 93.5 * scale, 196.5 * scale, 88 * scale, 198 * scale); ctx.bezierCurveTo(94 * scale, 176 * scale, 96 * scale, 174 * scale, 101 * scale, 168 * scale); ctx.closePath(); fill_path(ctx, color[9], color[9], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(64 * scale, 107 * scale); ctx.bezierCurveTo(64 * scale, 101 * scale, 64 * scale, 101 * scale, 64 * scale, 95 * scale); ctx.bezierCurveTo(57 * scale, 86 * scale, 57 * scale, 84 * scale, 53 * scale, 97 * scale); ctx.bezierCurveTo(55 * scale, 103.5 * scale, 55 * scale, 103.5 * scale, 57 * scale, 110 * scale); ctx.closePath(); fill_path(ctx, color[11], color[11], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(40 * scale, 108 * scale); ctx.bezierCurveTo(46.5 * scale, 111 * scale, 46.5 * scale, 111 * scale, 53 * scale, 114 * scale); ctx.bezierCurveTo(50.5 * scale, 117 * scale, 50.5 * scale, 117 * scale, 48 * scale, 120 * scale); ctx.bezierCurveTo(40.5 * scale, 117.5 * scale, 40.5 * scale, 117.5 * scale, 33 * scale, 115 * scale); ctx.bezierCurveTo(36 * scale, 112 * scale, 36 * scale, 112 * scale, 39 * scale, 109 * scale); ctx.closePath(); fill_path(ctx, color[11], color[11], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(189 * scale, 106 * scale); ctx.bezierCurveTo(178.5 * scale, 110.5 * scale, 178.5 * scale, 110.5 * scale, 168 * scale, 115 * scale); ctx.bezierCurveTo(168.5 * scale, 119 * scale, 168.5 * scale, 119 * scale, 169 * scale, 123 * scale); ctx.bezierCurveTo(179 * scale, 124.5 * scale, 179 * scale, 124.5 * scale, 189 * scale, 126 * scale); ctx.bezierCurveTo(182 * scale, 118 * scale, 183 * scale, 115 * scale, 188 * scale, 106 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(69 * scale, 178 * scale); ctx.bezierCurveTo(69 * scale, 141 * scale, 70 * scale, 136 * scale, 77 * scale, 137 * scale); ctx.bezierCurveTo(88 * scale, 133 * scale, 101 * scale, 134 * scale, 108 * scale, 137 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 161 * scale); ctx.bezierCurveTo(54 * scale, 124 * scale, 55 * scale, 119 * scale, 62 * scale, 119 * scale); ctx.bezierCurveTo(74 * scale, 117 * scale, 85 * scale, 117 * scale, 93 * scale, 119 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(91 * scale, 29 * scale); ctx.bezierCurveTo(74 * scale, 33 * scale, 62 * scale, 46 * scale, 57 * scale, 54 * scale); ctx.bezierCurveTo(57 * scale, 63 * scale, 68 * scale, 76 * scale, 77 * scale, 87 * scale); fill_path(ctx, undefined, color[6], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 33 * scale); ctx.bezierCurveTo(82 * scale, 51 * scale, 80 * scale, 52 * scale, 79 * scale, 59 * scale); ctx.bezierCurveTo(78 * scale, 65 * scale, 93 * scale, 86 * scale, 101 * scale, 93 * scale); fill_path(ctx, undefined, color[6], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 98 * scale); ctx.bezierCurveTo(126.5 * scale, 103 * scale, 126.5 * scale, 103 * scale, 123 * scale, 108 * scale); ctx.bezierCurveTo(133.5 * scale, 107 * scale, 133.5 * scale, 107 * scale, 144 * scale, 106 * scale); ctx.bezierCurveTo(138.5 * scale, 110 * scale, 138.5 * scale, 110 * scale, 133 * scale, 114 * scale); ctx.bezierCurveTo(142 * scale, 114 * scale, 142 * scale, 114 * scale, 151 * scale, 114 * scale); ctx.bezierCurveTo(146.5 * scale, 119.5 * scale, 146.5 * scale, 119.5 * scale, 142 * scale, 125 * scale); ctx.bezierCurveTo(146.5 * scale, 127 * scale, 146.5 * scale, 127 * scale, 151 * scale, 129 * scale); ctx.bezierCurveTo(147.5 * scale, 132 * scale, 147.5 * scale, 132 * scale, 144 * scale, 135 * scale); ctx.bezierCurveTo(148 * scale, 137 * scale, 148 * scale, 137 * scale, 152 * scale, 139 * scale); ctx.bezierCurveTo(149 * scale, 142.5 * scale, 149 * scale, 142.5 * scale, 146 * scale, 146 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#9e793d #5f461f return can; } function create_ferrero_rocher(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 118 * scale; can.height = 114 * scale; ctx.translate(0, 10 * scale); circle(ctx, 42 * scale, 43 * scale, 24.758836806279895 * scale); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65 * scale, 90 * scale); ctx.bezierCurveTo(72 * scale, 91 * scale, 75 * scale, 92 * scale, 71 * scale, 96 * scale); ctx.bezierCurveTo(65 * scale, 98 * scale, 65 * scale, 94 * scale, 65 * scale, 91 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87 * scale, 45 * scale); ctx.bezierCurveTo(108 * scale, 59 * scale, 100 * scale, 86 * scale, 85 * scale, 91 * scale); ctx.bezierCurveTo(80 * scale, 96 * scale, 68 * scale, 95 * scale, 58 * scale, 87 * scale); ctx.bezierCurveTo(53 * scale, 80 * scale, 61 * scale, 64 * scale, 66 * scale, 58 * scale); ctx.bezierCurveTo(73 * scale, 48 * scale, 78 * scale, 44 * scale, 87 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, -10 * scale); circle(ctx, 42 * scale, 43 * scale, 24.758836806279895 * scale); fill_path(ctx, color[1], color[2], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65 * scale, 90 * scale); ctx.bezierCurveTo(72 * scale, 91 * scale, 75 * scale, 92 * scale, 71 * scale, 96 * scale); ctx.bezierCurveTo(65 * scale, 98 * scale, 65 * scale, 94 * scale, 65 * scale, 91 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87 * scale, 45 * scale); ctx.bezierCurveTo(108 * scale, 59 * scale, 100 * scale, 86 * scale, 85 * scale, 91 * scale); ctx.bezierCurveTo(80 * scale, 96 * scale, 68 * scale, 95 * scale, 58 * scale, 87 * scale); ctx.bezierCurveTo(53 * scale, 80 * scale, 61 * scale, 64 * scale, 66 * scale, 58 * scale); ctx.bezierCurveTo(73 * scale, 48 * scale, 78 * scale, 44 * scale, 87 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 16 * scale); ctx.bezierCurveTo(55 * scale, 19 * scale, 54 * scale, 20 * scale, 55 * scale, 22 * scale); ctx.bezierCurveTo(52 * scale, 24.5 * scale, 52 * scale, 24.5 * scale, 49 * scale, 27 * scale); ctx.bezierCurveTo(45 * scale, 25 * scale, 45 * scale, 25 * scale, 41 * scale, 23 * scale); ctx.bezierCurveTo(45 * scale, 19 * scale, 48 * scale, 16 * scale, 52 * scale, 16 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(62 * scale, 30 * scale); ctx.bezierCurveTo(66 * scale, 29 * scale, 64 * scale, 30 * scale, 66 * scale, 30 * scale); ctx.bezierCurveTo(67 * scale, 31 * scale, 67 * scale, 31 * scale, 68 * scale, 32 * scale); ctx.bezierCurveTo(66.5 * scale, 33.5 * scale, 66.5 * scale, 33.5 * scale, 65 * scale, 35 * scale); ctx.bezierCurveTo(63.5 * scale, 32.5 * scale, 63.5 * scale, 32.5 * scale, 62 * scale, 30 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(29 * scale, 21 * scale); ctx.bezierCurveTo(31 * scale, 22 * scale, 31 * scale, 26 * scale, 29 * scale, 29 * scale); ctx.bezierCurveTo(26 * scale, 28.5 * scale, 26 * scale, 28.5 * scale, 23 * scale, 28 * scale); ctx.bezierCurveTo(23 * scale, 26.5 * scale, 23 * scale, 26.5 * scale, 23 * scale, 25 * scale); ctx.bezierCurveTo(25 * scale, 23 * scale, 25 * scale, 23 * scale, 27 * scale, 21 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(18 * scale, 36 * scale); ctx.bezierCurveTo(23 * scale, 36 * scale, 24 * scale, 42 * scale, 19 * scale, 46 * scale); ctx.bezierCurveTo(12 * scale, 39 * scale, 15 * scale, 38 * scale, 18 * scale, 37 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 34 * scale); ctx.bezierCurveTo(35 * scale, 36 * scale, 36 * scale, 39 * scale, 32 * scale, 45 * scale); ctx.bezierCurveTo(25 * scale, 46 * scale, 25 * scale, 44 * scale, 30 * scale, 34 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59 * scale, 35 * scale); ctx.bezierCurveTo(58 * scale, 27 * scale, 57 * scale, 27 * scale, 52 * scale, 31 * scale); ctx.bezierCurveTo(50 * scale, 36 * scale, 53 * scale, 38 * scale, 58 * scale, 36 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(63 * scale, 46 * scale); ctx.bezierCurveTo(64.5 * scale, 46.5 * scale, 64.5 * scale, 46.5 * scale, 66 * scale, 47 * scale); ctx.bezierCurveTo(70 * scale, 50 * scale, 70 * scale, 53 * scale, 61 * scale, 55 * scale); ctx.bezierCurveTo(62 * scale, 50.5 * scale, 62 * scale, 50.5 * scale, 63 * scale, 46 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 42 * scale); ctx.bezierCurveTo(47 * scale, 41 * scale, 53 * scale, 47 * scale, 46 * scale, 51 * scale); ctx.bezierCurveTo(38 * scale, 49 * scale, 39 * scale, 46 * scale, 41 * scale, 43 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 57 * scale); ctx.bezierCurveTo(54 * scale, 57 * scale, 54 * scale, 58 * scale, 55 * scale, 61 * scale); ctx.bezierCurveTo(54 * scale, 63 * scale, 52 * scale, 64 * scale, 48 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(20 * scale, 52 * scale); ctx.bezierCurveTo(25 * scale, 51 * scale, 27 * scale, 50 * scale, 28 * scale, 54 * scale); ctx.bezierCurveTo(27 * scale, 58 * scale, 24 * scale, 58 * scale, 22 * scale, 58 * scale); ctx.bezierCurveTo(21 * scale, 55.5 * scale, 21 * scale, 55.5 * scale, 20 * scale, 53 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 61 * scale); ctx.bezierCurveTo(37 * scale, 61 * scale, 39 * scale, 63 * scale, 39 * scale, 68 * scale); ctx.bezierCurveTo(36 * scale, 68.5 * scale, 36 * scale, 68.5 * scale, 33 * scale, 69 * scale); ctx.bezierCurveTo(30.5 * scale, 67.5 * scale, 30.5 * scale, 67.5 * scale, 28 * scale, 66 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(88 * scale, 45 * scale); ctx.bezierCurveTo(90 * scale, 46.5 * scale, 90 * scale, 46.5 * scale, 92 * scale, 48 * scale); ctx.bezierCurveTo(92 * scale, 50 * scale, 92 * scale, 50 * scale, 92 * scale, 52 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96 * scale, 53 * scale); ctx.bezierCurveTo(97.5 * scale, 55 * scale, 97.5 * scale, 55 * scale, 99 * scale, 57 * scale); ctx.bezierCurveTo(97.5 * scale, 59.5 * scale, 97.5 * scale, 59.5 * scale, 96 * scale, 62 * scale); ctx.bezierCurveTo(93.5 * scale, 60.5 * scale, 93.5 * scale, 60.5 * scale, 91 * scale, 59 * scale); ctx.bezierCurveTo(91.5 * scale, 57 * scale, 91.5 * scale, 57 * scale, 92 * scale, 55 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(92 * scale, 71 * scale); ctx.bezierCurveTo(94.5 * scale, 70.5 * scale, 94.5 * scale, 70.5 * scale, 97 * scale, 70 * scale); ctx.bezierCurveTo(98.5 * scale, 72.5 * scale, 98.5 * scale, 72.5 * scale, 100 * scale, 75 * scale); ctx.bezierCurveTo(97 * scale, 76.5 * scale, 97 * scale, 76.5 * scale, 94 * scale, 78 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 82 * scale); ctx.bezierCurveTo(96 * scale, 83 * scale, 96 * scale, 83 * scale, 97 * scale, 84 * scale); ctx.bezierCurveTo(97 * scale, 85.5 * scale, 97 * scale, 85.5 * scale, 97 * scale, 87 * scale); ctx.bezierCurveTo(93.5 * scale, 87.5 * scale, 93.5 * scale, 87.5 * scale, 90 * scale, 88 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86 * scale, 72 * scale); ctx.bezierCurveTo(89 * scale, 76 * scale, 88 * scale, 81 * scale, 85 * scale, 82 * scale); ctx.bezierCurveTo(80 * scale, 80 * scale, 82 * scale, 78 * scale, 85 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 86 * scale); ctx.bezierCurveTo(84 * scale, 88 * scale, 86 * scale, 88 * scale, 85 * scale, 93 * scale); ctx.bezierCurveTo(80 * scale, 96 * scale, 79 * scale, 96 * scale, 76 * scale, 91 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 46 * scale); ctx.bezierCurveTo(93 * scale, 51 * scale, 91 * scale, 62 * scale, 80 * scale, 78 * scale); ctx.bezierCurveTo(74 * scale, 86 * scale, 66 * scale, 90 * scale, 60 * scale, 86 * scale); ctx.bezierCurveTo(55 * scale, 79 * scale, 57 * scale, 73 * scale, 67 * scale, 57 * scale); ctx.bezierCurveTo(71 * scale, 51 * scale, 79 * scale, 44 * scale, 84 * scale, 46 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 60 * scale); ctx.bezierCurveTo(80 * scale, 66 * scale, 75 * scale, 74 * scale, 68 * scale, 74 * scale); ctx.bezierCurveTo(60 * scale, 64 * scale, 68 * scale, 59 * scale, 76 * scale, 59 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 5 * scale); //#9e793d #5f461f return can; } function create_seed(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 70; var h = scale * 90; var width = scale * 4; var shadow = scale * 5; var w2 = w / 2; var h2 = h / 2; var round = scale * 10; var wr = scale * 100; var hr = scale * 100; var wr2 = wr / 2; var hr2 = hr / 2; can.width = w; can.height = h; /* Draw shadow of the seed */ ctx.save(); ctx.translate(-80 * scale, -70 * scale + shadow); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.bezierCurveTo(130 * scale, 79 * scale, 132 * scale, 86 * scale, 130 * scale, 93 * scale); ctx.bezierCurveTo(128 * scale, 100 * scale, 121 * scale, 107 * scale, 120 * scale, 107 * scale); ctx.bezierCurveTo(120 * scale, 107 * scale, 115 * scale, 98 * scale, 115 * scale, 92 * scale); ctx.bezierCurveTo(115 * scale, 86 * scale, 119 * scale, 76 * scale, 127 * scale, 73 * scale); ctx.closePath(); fill_path(ctx, "#0d1b1c"); ctx.restore(); ctx.save(); ctx.translate(-80 * scale, -70 * scale + shadow); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.bezierCurveTo(112 * scale, 109 * scale, 111 * scale, 100 * scale, 106 * scale, 93 * scale); ctx.bezierCurveTo(104 * scale, 90 * scale, 91 * scale, 87 * scale, 91 * scale, 87 * scale); ctx.bezierCurveTo(91 * scale, 88 * scale, 91 * scale, 96 * scale, 94 * scale, 102 * scale); ctx.bezierCurveTo(97 * scale, 108 * scale, 106 * scale, 112 * scale, 113 * scale, 112 * scale); ctx.closePath(); fill_path(ctx, "#0d1b1c"); ctx.restore(); ctx.save(); ctx.translate(-80 * scale, -70 * scale + shadow); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.bezierCurveTo(108 * scale, 120 * scale, 100 * scale, 119 * scale, 91 * scale, 127 * scale); ctx.bezierCurveTo(83 * scale, 134 * scale, 82 * scale, 146 * scale, 83 * scale, 146 * scale); ctx.bezierCurveTo(84 * scale, 146 * scale, 98 * scale, 142 * scale, 103 * scale, 138 * scale); ctx.bezierCurveTo(107 * scale, 135 * scale, 110 * scale, 130 * scale, 112 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, "#0d1b1c"); ctx.restore(); ctx.save(); ctx.translate(3 * scale, -93 * scale + shadow); ctx.rotate(window.Math.PI / 5); ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.bezierCurveTo(130 * scale, 79 * scale, 132 * scale, 86 * scale, 130 * scale, 93 * scale); ctx.bezierCurveTo(128 * scale, 100 * scale, 121 * scale, 107 * scale, 120 * scale, 107 * scale); ctx.bezierCurveTo(120 * scale, 107 * scale, 115 * scale, 98 * scale, 115 * scale, 92 * scale); ctx.bezierCurveTo(115 * scale, 86 * scale, 119 * scale, 76 * scale, 127 * scale, 73 * scale); ctx.closePath(); fill_path(ctx, "#0d1b1c"); ctx.restore(); /* Draw seed */ ctx.save(); ctx.translate(-80 * scale, -70 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(130 * scale, 79 * scale, 132 * scale, 86 * scale, 130 * scale, 93 * scale); ctx.bezierCurveTo(128 * scale, 100 * scale, 121 * scale, 107 * scale, 120 * scale, 107 * scale); ctx.bezierCurveTo(120 * scale, 107 * scale, 115 * scale, 98 * scale, 115 * scale, 92 * scale); ctx.bezierCurveTo(115 * scale, 86 * scale, 119 * scale, 76 * scale, 127 * scale, 73 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], width); ctx.restore(); ctx.save(); ctx.translate(-80 * scale, -70 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(112 * scale, 109 * scale, 111 * scale, 100 * scale, 106 * scale, 93 * scale); ctx.bezierCurveTo(104 * scale, 90 * scale, 91 * scale, 87 * scale, 91 * scale, 87 * scale); ctx.bezierCurveTo(91 * scale, 88 * scale, 91 * scale, 96 * scale, 94 * scale, 102 * scale); ctx.bezierCurveTo(97 * scale, 108 * scale, 106 * scale, 112 * scale, 113 * scale, 112 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], width); ctx.restore(); ctx.save(); ctx.translate(-80 * scale, -70 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(108 * scale, 120 * scale, 100 * scale, 119 * scale, 91 * scale, 127 * scale); ctx.bezierCurveTo(83 * scale, 134 * scale, 82 * scale, 146 * scale, 83 * scale, 146 * scale); ctx.bezierCurveTo(84 * scale, 146 * scale, 98 * scale, 142 * scale, 103 * scale, 138 * scale); ctx.bezierCurveTo(107 * scale, 135 * scale, 110 * scale, 130 * scale, 112 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], width); ctx.restore(); ctx.save(); ctx.translate(3 * scale, -93 * scale); ctx.rotate(window.Math.PI / 5); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(130 * scale, 79 * scale, 132 * scale, 86 * scale, 130 * scale, 93 * scale); ctx.bezierCurveTo(128 * scale, 100 * scale, 121 * scale, 107 * scale, 120 * scale, 107 * scale); ctx.bezierCurveTo(120 * scale, 107 * scale, 115 * scale, 98 * scale, 115 * scale, 92 * scale); ctx.bezierCurveTo(115 * scale, 86 * scale, 119 * scale, 76 * scale, 127 * scale, 73 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], width); ctx.restore(); return can; } function create_info_box(inv) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var text = LANG[inv]; // Get the bigger line ctx.font = "20px Baloo Paaji"; var max_size = 0; if (text.length >= 1) max_size = window.Math.max(0, ctx.measureText(text[0]).width); ctx.font = "17px Baloo Paaji"; if (text.length >= 2) max_size = window.Math.max(max_size, ctx.measureText(text[1]).width); ctx.font = "14px Baloo Paaji"; for (i = 2; i < text.length; i++) max_size = window.Math.max(max_size, ctx.measureText(text[i]).width); var width = max_size + 35; var text_height = 26; var height = 0; if (text.length === 1) height = 55; else if (text.length === 2) height = 85; else height = (text.length - 2) * text_height + 85; can.width = width; can.height = height; // Draw background round_rect(ctx, 0, 0, width, height, 10); ctx.fillStyle = "#000000"; ctx.globalAlpha = 0.5; ctx.fill(); // Draw text! if (text.length >= 1) { (ctx.textBaseline = "middle"), (ctx.font = "20px Baloo Paaji"); ctx.globalAlpha = 1; ctx.fillStyle = "#e2c340"; ctx.fillText(text[0], 15, 28); } if (text.length >= 2) { ctx.font = "17px Baloo Paaji"; ctx.fillStyle = "#ffffff"; ctx.fillText(text[1], 15, 55); height = 55; } if (text.length >= 3) { ctx.font = "14px Baloo Paaji"; ctx.globalAlpha = 0.7; for (i = 2; i < text.length; i++) { ctx.fillText(text[i], 15, height + 28); height += text_height; } } return can; } function create_welcome_text(text) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); ctx.lineJoin = "round"; while (text.indexOf("\\n") !== -1) text = text.replace("\\n", "\n"); text = text.split("\n"); var h = 14; var height = text.length * (h + 4) + 10; var width = 0; var color = []; ctx.font = h + "px Baloo Paaji"; for (var i = 0; i < text.length; i++) { if (text[i].charAt(0) === "#") { color[i] = text[i].substring(0, 7); text[i] = text[i].substring(8); } else color[i] = "#FFFFFF"; width = window.Math.max(ctx.measureText(text[i]).width + 16, width); } can.height = height; can.width = width; for (var i = 0; i < text.length; i++) { var img = create_text(1, text[i], h, color[i], null, null, null, null, null, "#000000", 6); ctx.drawImage(img, 8, i * (h + 4) + 5); } return can; } function create_text(scale, text, h, color, shadow, dist, rounded, radius, max, stroke, line = 0) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); dist = !dist ? 0 : dist * scale; var height = window.Math.floor(scale * h); ctx.font = height + "px Baloo Paaji"; ctx.lineJoin = "round"; radius = radius * scale; var gap = rounded ? radius * 2 : 0; if (max) var width = window.Math.min(ctx.measureText(text).width + 2 * scale + gap, max); else var width = ctx.measureText(text).width + 2 * scale + gap + line * scale * 2; var height = (height + dist + line) * scale + gap; can.width = width; can.height = height; /* Draw background */ if (rounded) { ctx.fillStyle = rounded; round_rect(ctx, 0, 0, width, height, radius * 2); ctx.fill(); ctx.translate(radius, radius); } /* Draw text */ (ctx.textBaseline = "middle"), (ctx.font = h + "px Baloo Paaji"); ctx.lineJoin = "round"; if (shadow) { ctx.beginPath(); ctx.fillStyle = shadow; ctx.fillText(text, 0, height / 2 + dist - gap / 2, width); } ctx.beginPath(); if (stroke) { ctx.strokeStyle = stroke; ctx.lineWidth = line; ctx.strokeText(text, line, (height - gap) / 2, width); } ctx.fillStyle = color; ctx.fillText(text, line, (height - gap) / 2, width); return can; } function create_stone(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 220; var h = scale * 230; var r = scale * 100; var round = r / 4; var shadow = scale * 20; can.width = w; can.height = h; /* Draw shadow of the rock */ ctx.translate(w / 2, h / 2 + shadow); ctx.globalAlpha = 0.5; round_regular_polygon(ctx, 7, r, round); fill_path(ctx, color[0]); /* Draw rock and subrock */ ctx.globalAlpha = 1; ctx.translate(0, -shadow); round_regular_polygon(ctx, 7, r, round); fill_path(ctx, color[1]); round_regular_polygon(ctx, 6, r * 0.65, round * 0.65); fill_path(ctx, color[2]); return can; } function create_cave_stone(scale, draw_shadow, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 220; var h = scale * 220; var r = scale * 100; var round = r / 4; can.width = w; can.height = h; ctx.translate(w / 2, h / 2); /* Draw shadow of the rock */ ctx.globalAlpha = draw_shadow ? 0.5 : 1; if (!draw_shadow) ctx.translate(0 * scale, -8 * scale); round_regular_polygon(ctx, 7, r, round); if (draw_shadow) { fill_path(ctx, color[0]); } else { fill_path(ctx, color[1]); } /* Draw rock and subrock */ ctx.globalAlpha = 1; if (i == 0) { round_regular_polygon(ctx, 6, r * 0.65, round * 0.65); fill_path(ctx, color[2]); } else if (i == 1) { ctx.translate(20 * scale, 20 * scale); round_regular_polygon(ctx, 6, r * 0.45, round * 0.4); fill_path(ctx, color[2]); } return can; } function create_gold(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 120; var h = scale * 150; var r = scale * 60; var round = r / 4; var shadow = scale * 15; can.width = w; can.height = h; /* Draw shadow of the rock */ ctx.save(); ctx.translate(w / 2 + 0 * scale, h / 2 + 0 * scale + shadow); ctx.rotate(window.Math.PI / 3); ctx.globalAlpha = 0.5; round_regular_polygon(ctx, 8, r, round); fill_path(ctx, color[0]); ctx.restore(); /* Draw rock */ ctx.save(); ctx.translate(w / 2 - 11 * scale, h / 2 + 12 * scale); ctx.globalAlpha = 1; ctx.rotate(window.Math.PI / 3); ctx.translate(0, -shadow); round_regular_polygon(ctx, 8, r, round); fill_path(ctx, color[1]); ctx.restore(); /* Draw subrock */ ctx.save(); ctx.translate(w / 2 - 9 * scale, h / 2 - 12 * scale); ctx.rotate(window.Math.PI / 2.8); round_regular_polygon(ctx, 5, r * 0.5, round * 0.4); fill_path(ctx, color[2]); ctx.restore(); ctx.save(); ctx.translate(w / 2 + 19 * scale, h / 2 + 5 * scale); ctx.rotate(window.Math.PI / 1); round_regular_polygon(ctx, 5, r * 0.5, round * 0.4); fill_path(ctx, color[2]); ctx.restore(); ctx.save(); ctx.translate(w / 2 - 8 * scale, h / 2 + 20 * scale); ctx.rotate(window.Math.PI / 2.25); round_regular_polygon(ctx, 5, r * 0.5, round * 0.4); fill_path(ctx, color[2]); ctx.restore(); return can; } function create_diamond(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 180; var h = scale * 210; var r = scale * 60; var round = r / 4; var shadow = scale * 20; can.width = w; can.height = h; /* Draw shadow of the rock */ ctx.save(); ctx.translate(w / 2 - 0 * scale, h / 2 - 35 * scale + shadow); ctx.rotate(window.Math.PI / -1.8); ctx.globalAlpha = 0.5; ctx.translate(0 * scale, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[0]); ctx.restore(); ctx.save(); ctx.translate(w / 2 + 10 * scale, h / 2 + 15 * scale + shadow); ctx.rotate(window.Math.PI / 2); ctx.globalAlpha = 0.5; ctx.translate(0 * scale, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[0]); ctx.restore(); ctx.save(); ctx.translate(w / 2 - 50 * scale, h / 2 + 40 * scale + shadow); ctx.rotate(window.Math.PI / 3); ctx.globalAlpha = 0.5; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[0]); ctx.restore(); /* Draw rock */ ctx.save(); ctx.translate(w / 2 - 0 * scale, h / 2 - 35 * scale); ctx.rotate(window.Math.PI / -1.8); ctx.globalAlpha = 1; ctx.translate(0 * scale, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[1]); ctx.restore(); ctx.save(); ctx.translate(w / 2 + 10 * scale, h / 2 + 15 * scale); ctx.rotate(window.Math.PI / 2); ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[1]); ctx.restore(); ctx.save(); ctx.translate(w / 2 - 50 * scale, h / 2 + 40 * scale); ctx.rotate(window.Math.PI / 3); ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[1]); ctx.restore(); /* Draw subrock*/ var r = scale * 30; var round = r / 4; ctx.save(); ctx.translate(w / 2 + 5 * scale, h / 2 - 20 * scale); ctx.rotate(window.Math.PI / -1.8); ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[2]); ctx.restore(); ctx.save(); ctx.translate(w / 2 + 0 * scale, h / 2 + 10 * scale); ctx.rotate(window.Math.PI / 2); ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[2]); ctx.restore(); ctx.save(); ctx.translate(w / 2 - 45 * scale, h / 2 + 35 * scale); ctx.rotate(window.Math.PI / 3); ctx.globalAlpha = 1; ctx.translate(0, -20 * scale); round_regular_polygon(ctx, 5, r, round); fill_path(ctx, color[2]); ctx.restore(); circle(ctx, w / 2 - 7 * scale, h / 2 + 7 * scale, 5); fill_path(ctx, color[2]); return can; } function create_plant(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 140; var h = scale * 150; var shadow = scale * 10; var width = scale * 4; can.width = w; can.height = h; /* Draw shadow of the plant */ ctx.translate(-50 * scale, -38 * scale + shadow); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.bezierCurveTo(160 * scale, 65 * scale, 160 * scale, 85 * scale, 152 * scale, 95 * scale); ctx.bezierCurveTo(152 * scale, 95 * scale, 173 * scale, 94 * scale, 187 * scale, 102 * scale); ctx.bezierCurveTo(187 * scale, 102 * scale, 180 * scale, 120 * scale, 155 * scale, 126 * scale); ctx.bezierCurveTo(154 * scale, 126 * scale, 166 * scale, 138 * scale, 169 * scale, 148 * scale); ctx.bezierCurveTo(169 * scale, 148 * scale, 148 * scale, 152 * scale, 133 * scale, 140 * scale); ctx.bezierCurveTo(133 * scale, 140 * scale, 134 * scale, 160 * scale, 122 * scale, 175 * scale); ctx.bezierCurveTo(122 * scale, 175 * scale, 107 * scale, 162 * scale, 107 * scale, 144 * scale); ctx.bezierCurveTo(107 * scale, 144 * scale, 98 * scale, 164 * scale, 73 * scale, 167 * scale); ctx.bezierCurveTo(73 * scale, 167 * scale, 72 * scale, 134 * scale, 90 * scale, 127 * scale); ctx.bezierCurveTo(90 * scale, 127 * scale, 70 * scale, 134 * scale, 55 * scale, 123 * scale); ctx.bezierCurveTo(55 * scale, 123 * scale, 58 * scale, 115 * scale, 75 * scale, 104 * scale); ctx.bezierCurveTo(75 * scale, 104 * scale, 66 * scale, 96 * scale, 61 * scale, 77 * scale); ctx.bezierCurveTo(61 * scale, 77 * scale, 83 * scale, 74 * scale, 102 * scale, 89 * scale); ctx.bezierCurveTo(102 * scale, 89 * scale, 92 * scale, 66 * scale, 110 * scale, 41 * scale); ctx.bezierCurveTo(111 * scale, 40 * scale, 130 * scale, 54 * scale, 130 * scale, 82 * scale); ctx.bezierCurveTo(130 * scale, 82 * scale, 143 * scale, 67 * scale, 159 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[0]); /* Draw plant */ ctx.translate(0, 0 - shadow); ctx.globalAlpha = 1; ctx.beginPath(); ctx.bezierCurveTo(160 * scale, 65 * scale, 160 * scale, 85 * scale, 152 * scale, 95 * scale); ctx.bezierCurveTo(152 * scale, 95 * scale, 173 * scale, 94 * scale, 187 * scale, 102 * scale); ctx.bezierCurveTo(187 * scale, 102 * scale, 180 * scale, 120 * scale, 155 * scale, 126 * scale); ctx.bezierCurveTo(154 * scale, 126 * scale, 166 * scale, 138 * scale, 169 * scale, 148 * scale); ctx.bezierCurveTo(169 * scale, 148 * scale, 148 * scale, 152 * scale, 133 * scale, 140 * scale); ctx.bezierCurveTo(133 * scale, 140 * scale, 134 * scale, 160 * scale, 122 * scale, 175 * scale); ctx.bezierCurveTo(122 * scale, 175 * scale, 107 * scale, 162 * scale, 107 * scale, 144 * scale); ctx.bezierCurveTo(107 * scale, 144 * scale, 98 * scale, 164 * scale, 73 * scale, 167 * scale); ctx.bezierCurveTo(73 * scale, 167 * scale, 72 * scale, 134 * scale, 90 * scale, 127 * scale); ctx.bezierCurveTo(90 * scale, 127 * scale, 70 * scale, 134 * scale, 55 * scale, 123 * scale); ctx.bezierCurveTo(55 * scale, 123 * scale, 58 * scale, 115 * scale, 75 * scale, 104 * scale); ctx.bezierCurveTo(75 * scale, 104 * scale, 66 * scale, 96 * scale, 61 * scale, 77 * scale); ctx.bezierCurveTo(61 * scale, 77 * scale, 83 * scale, 74 * scale, 102 * scale, 89 * scale); ctx.bezierCurveTo(102 * scale, 89 * scale, 92 * scale, 66 * scale, 110 * scale, 41 * scale); ctx.bezierCurveTo(111 * scale, 40 * scale, 130 * scale, 54 * scale, 130 * scale, 82 * scale); ctx.bezierCurveTo(130 * scale, 82 * scale, 143 * scale, 67 * scale, 159 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], width); return can; } function create_fruit(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 18; var h = scale * 18; can.width = w; can.height = h; var x = scale * 9; var y = scale * 9; var r = scale * 8; /* Draw fruit 1 */ ctx.save(); ctx.translate(x, y); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[0]); var r = 3 * scale; var x = 0; var y = -3 * scale; /* Draw light 1 */ ctx.translate(x, y); ctx.globalAlpha = 1; circle(ctx, 0, 0, r); fill_path(ctx, color[1]); ctx.restore(); return can; } /*SNOW WINTER*/ function create_leaf(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 234 * scale; can.height = 183 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 25 * scale); ctx.bezierCurveTo(150 * scale, 3 * scale, 181 * scale, 22 * scale, 203 * scale, 41 * scale); ctx.bezierCurveTo(225 * scale, 63 * scale, 225 * scale, 105 * scale, 198 * scale, 133 * scale); ctx.bezierCurveTo(179 * scale, 157 * scale, 134 * scale, 178 * scale, 81 * scale, 164 * scale); ctx.bezierCurveTo(19 * scale, 148 * scale, 6 * scale, 95 * scale, 21 * scale, 66 * scale); ctx.bezierCurveTo(34 * scale, 39 * scale, 52 * scale, 33 * scale, 75 * scale, 25 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#9e793d #5f461f return can; } function create_herb(scale, useless, color, i, a) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); /* Draw herb */ if (i == 0) { var w = scale * 270; var h = scale * 250; can.width = w; can.height = h; ctx.beginPath(); ctx.moveTo(140 * scale, 3 * scale); ctx.translate(-25 * scale, -20 * scale); ctx.bezierCurveTo(218 * scale, 31 * scale, 251 * scale, 61 * scale, 265 * scale, 85 * scale); ctx.bezierCurveTo(278 * scale, 108 * scale, 295 * scale, 160 * scale, 285 * scale, 195 * scale); ctx.bezierCurveTo(271 * scale, 242 * scale, 213 * scale, 268 * scale, 188 * scale, 266 * scale); ctx.bezierCurveTo(139 * scale, 262 * scale, 70 * scale, 244 * scale, 47 * scale, 204 * scale); ctx.bezierCurveTo(20 * scale, 158 * scale, 35 * scale, 78 * scale, 59 * scale, 56 * scale); ctx.bezierCurveTo(90 * scale, 28 * scale, 124 * scale, 23 * scale, 140 * scale, 23 * scale); ctx.closePath(); fill_path(ctx, color[0]); } else if (i == 1) { var w = scale * 430; var h = scale * 350; can.width = w; can.height = h; ctx.beginPath(); ctx.moveTo(180 * scale, 5 * scale); ctx.translate(-30 * scale, -60 * scale); ctx.bezierCurveTo(283 * scale, 60 * scale, 265 * scale, 163 * scale, 335 * scale, 206 * scale); ctx.bezierCurveTo(376 * scale, 231 * scale, 492 * scale, 299 * scale, 434 * scale, 357 * scale); ctx.bezierCurveTo(371 * scale, 421 * scale, 289 * scale, 394 * scale, 255 * scale, 386 * scale); ctx.bezierCurveTo(218 * scale, 377 * scale, 91 * scale, 359 * scale, 50 * scale, 272 * scale); ctx.bezierCurveTo(12 * scale, 192 * scale, 107 * scale, 75 * scale, 178 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, color[0]); } else if (i == 2) { var w = scale * 400; var h = scale * 300; can.width = w; can.height = h; ctx.beginPath(); ctx.moveTo(80 * scale, 52 * scale); ctx.translate(-40 * scale, -30 * scale); ctx.bezierCurveTo(124 * scale, 77 * scale, 241 * scale, 22 * scale, 311 * scale, 65 * scale); ctx.bezierCurveTo(352 * scale, 90 * scale, 404 * scale, 176 * scale, 346 * scale, 234 * scale); ctx.bezierCurveTo(283 * scale, 298 * scale, 179 * scale, 299 * scale, 145 * scale, 291 * scale); ctx.bezierCurveTo(108 * scale, 282 * scale, 100 * scale, 239 * scale, 63 * scale, 205 * scale); ctx.bezierCurveTo(37 * scale, 181 * scale, 45 * scale, 131 * scale, 80 * scale, 107 * scale); ctx.closePath(); fill_path(ctx, color[0]); } return can; } function create_flake(scale, r, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * r * 2; var h = scale * r * 2; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw cicle */ ctx.translate(x, y); circle(ctx, 0, 0, r * scale, 0); fill_path(ctx, color); return can; } function create_divingmask(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 373 * scale; can.height = 314 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(184.048583984375 * scale, 69.1805419921875 * scale); round_rect(ctx, -40 * scale, -28.5 * scale, 80 * scale, 57 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#51d875 #4d7ea8 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.048583984375 * scale, 61.6805419921875 * scale); ctx.bezierCurveTo(145.048583984375 * scale, 59.6805419921875 * scale, 138.048583984375 * scale, 41.6805419921875 * scale, 148.048583984375 * scale, 33.6805419921875 * scale); ctx.bezierCurveTo(169.048583984375 * scale, 17.6805419921875 * scale, 194.048583984375 * scale, 20.6805419921875 * scale, 210.048583984375 * scale, 27.6805419921875 * scale); ctx.bezierCurveTo(234.048583984375 * scale, 40.6805419921875 * scale, 225.048583984375 * scale, 57.6805419921875 * scale, 186.048583984375 * scale, 61.6805419921875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224.048583984375 * scale, 56.6805419921875 * scale); ctx.bezierCurveTo(326.048583984375 * scale, 69.6805419921875 * scale, 363.048583984375 * scale, 148.6805419921875 * scale, 349.048583984375 * scale, 206.6805419921875 * scale); ctx.bezierCurveTo(329.048583984375 * scale, 278.6805419921875 * scale, 252.048583984375 * scale, 283.6805419921875 * scale, 206.048583984375 * scale, 275.6805419921875 * scale); ctx.bezierCurveTo(206.548583984375 * scale, 266.6805419921875 * scale, 206.548583984375 * scale, 266.6805419921875 * scale, 207.048583984375 * scale, 257.6805419921875 * scale); ctx.bezierCurveTo(276.048583984375 * scale, 268.6805419921875 * scale, 308.048583984375 * scale, 239.6805419921875 * scale, 323.048583984375 * scale, 208.6805419921875 * scale); ctx.bezierCurveTo(352.048583984375 * scale, 145.6805419921875 * scale, 292.048583984375 * scale, 86.6805419921875 * scale, 223.048583984375 * scale, 74.6805419921875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.548583984375 * scale, 119.6805419921875 * scale); round_rect(ctx, -121.5 * scale, -45 * scale, 243 * scale, 90 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.048583984375 * scale, 155.6805419921875 * scale); round_rect(ctx, -121 * scale, -52 * scale, 242 * scale, 104 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.048583984375 * scale, 205.1805419921875 * scale); round_rect(ctx, -121 * scale, -50.5 * scale, 242 * scale, 101 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(185.048583984375 * scale, 204.1805419921875 * scale); round_rect(ctx, -100 * scale, -34.5 * scale, 200 * scale, 69 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 circle(ctx, 185.048583984375 * scale, 257.6805419921875 * scale, 27.018512172212592 * scale); fill_path(ctx, color[0], color[0], 6 * scale); //#51d875 #4d7ea8 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224.048583984375 * scale, 56.6805419921875 * scale); ctx.bezierCurveTo(326.048583984375 * scale, 69.6805419921875 * scale, 363.048583984375 * scale, 148.6805419921875 * scale, 349.048583984375 * scale, 206.6805419921875 * scale); ctx.bezierCurveTo(329.048583984375 * scale, 278.6805419921875 * scale, 252.048583984375 * scale, 283.6805419921875 * scale, 206.048583984375 * scale, 275.6805419921875 * scale); ctx.bezierCurveTo(206.548583984375 * scale, 266.6805419921875 * scale, 206.548583984375 * scale, 266.6805419921875 * scale, 207.048583984375 * scale, 257.6805419921875 * scale); ctx.bezierCurveTo(276.048583984375 * scale, 268.6805419921875 * scale, 308.048583984375 * scale, 239.6805419921875 * scale, 323.048583984375 * scale, 208.6805419921875 * scale); ctx.bezierCurveTo(352.048583984375 * scale, 145.6805419921875 * scale, 292.048583984375 * scale, 86.6805419921875 * scale, 223.048583984375 * scale, 74.6805419921875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(184.048583984375 * scale, 69.1805419921875 * scale); round_rect(ctx, -40 * scale, -28.5 * scale, 80 * scale, 57 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#51d875 #4d7ea8 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.048583984375 * scale, 61.6805419921875 * scale); ctx.bezierCurveTo(145.048583984375 * scale, 59.6805419921875 * scale, 138.048583984375 * scale, 41.6805419921875 * scale, 148.048583984375 * scale, 33.6805419921875 * scale); ctx.bezierCurveTo(169.048583984375 * scale, 17.6805419921875 * scale, 194.048583984375 * scale, 20.6805419921875 * scale, 210.048583984375 * scale, 27.6805419921875 * scale); ctx.bezierCurveTo(234.048583984375 * scale, 40.6805419921875 * scale, 225.048583984375 * scale, 57.6805419921875 * scale, 186.048583984375 * scale, 61.6805419921875 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.548583984375 * scale, 119.6805419921875 * scale); round_rect(ctx, -121.5 * scale, -45 * scale, 243 * scale, 90 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[5], color[4], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.048583984375 * scale, 155.6805419921875 * scale); round_rect(ctx, -121 * scale, -52 * scale, 242 * scale, 104 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#51d875 #4d7ea8 ctx.save(); ctx.translate(183.048583984375 * scale, 205.1805419921875 * scale); round_rect(ctx, -121 * scale, -50.5 * scale, 242 * scale, 101 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[6], color[4], 6 * scale); //#51d875 #4d7ea8 ctx.globalCompositeOperation = "destination-out"; ctx.save(); ctx.translate(185.048583984375 * scale, 204.1805419921875 * scale); round_rect(ctx, -100 * scale, -34.5 * scale, 200 * scale, 69 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[7], color[8], 6 * scale); //#51d875 #4d7ea8 ctx.globalCompositeOperation = "source-over"; ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(185.048583984375 * scale, 204.1805419921875 * scale); round_rect(ctx, -100 * scale, -34.5 * scale, 200 * scale, 69 * scale, 40 * scale); ctx.restore(); fill_path(ctx, color[7], color[8], 6 * scale); //#51d875 #4d7ea8 ctx.globalAlpha = 1; ctx.save(); circle(ctx, 185.048583984375 * scale, 257.6805419921875 * scale, 27.018512172212592 * scale); fill_path(ctx, color[3], color[4], 6 * scale); //#51d875 #4d7ea8 ctx.restore(); return can; } function create_superdivingsuit(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 220 * scale; can.height = 180 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(-90 * scale, -150 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(104 * scale, 237.8000030517578 * scale); ctx.bezierCurveTo(110 * scale, 237.8000030517578 * scale, 110 * scale, 237.8000030517578 * scale, 116 * scale, 237.8000030517578 * scale); ctx.bezierCurveTo(116 * scale, 241.8000030517578 * scale, 116 * scale, 241.8000030517578 * scale, 116 * scale, 245.8000030517578 * scale); ctx.bezierCurveTo(115 * scale, 245.3000030517578 * scale, 115 * scale, 245.3000030517578 * scale, 114 * scale, 244.8000030517578 * scale); ctx.bezierCurveTo(109.5 * scale, 244.8000030517578 * scale, 109.5 * scale, 244.8000030517578 * scale, 105 * scale, 244.8000030517578 * scale); ctx.closePath(); fill_path(ctx, color[5], color[5], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 211.20000457763672 * scale); ctx.bezierCurveTo(106 * scale, 216.20000457763672 * scale, 101 * scale, 234.20000457763672 * scale, 102 * scale, 241.20000457763672 * scale); ctx.bezierCurveTo(102 * scale, 260.2000045776367 * scale, 115 * scale, 269.2000045776367 * scale, 115 * scale, 269.2000045776367 * scale); ctx.bezierCurveTo(116 * scale, 265.2000045776367 * scale, 115.5 * scale, 265.2000045776367 * scale, 116 * scale, 261.2000045776367 * scale); ctx.bezierCurveTo(112 * scale, 264 * scale, 108 * scale, 254 * scale, 106 * scale, 242 * scale); ctx.bezierCurveTo(105 * scale, 232 * scale, 110 * scale, 222 * scale, 115 * scale, 218 * scale); ctx.bezierCurveTo(116 * scale, 216.75 * scale, 115.5 * scale, 217.375 * scale, 116 * scale, 216.75 * scale); ctx.closePath(); fill_path(ctx, color[5], color[5], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(120 * scale, 207 * scale); ctx.bezierCurveTo(115 * scale, 206 * scale, 114 * scale, 209 * scale, 114 * scale, 211 * scale); ctx.bezierCurveTo(114 * scale, 268 * scale, 114 * scale, 241 * scale, 114 * scale, 271 * scale); ctx.bezierCurveTo(115 * scale, 276 * scale, 118 * scale, 276 * scale, 120 * scale, 276 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 120.5 * scale, 274.5 * scale, 121 * scale, 273 * scale); ctx.bezierCurveTo(121 * scale, 241 * scale, 121 * scale, 241 * scale, 121 * scale, 209 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(284 * scale, 238 * scale); ctx.bezierCurveTo(289.5 * scale, 238 * scale, 289.5 * scale, 238 * scale, 295 * scale, 238 * scale); ctx.bezierCurveTo(295 * scale, 241.5 * scale, 295 * scale, 241.5 * scale, 295 * scale, 245 * scale); ctx.bezierCurveTo(289.5 * scale, 245 * scale, 289.5 * scale, 245 * scale, 284 * scale, 245 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(283 * scale, 211 * scale); ctx.bezierCurveTo(293 * scale, 216 * scale, 297 * scale, 231 * scale, 297 * scale, 241 * scale); ctx.bezierCurveTo(298 * scale, 254 * scale, 290 * scale, 265 * scale, 284 * scale, 269 * scale); ctx.bezierCurveTo(283 * scale, 266 * scale, 283.5 * scale, 266 * scale, 283 * scale, 263 * scale); ctx.bezierCurveTo(290 * scale, 260 * scale, 292 * scale, 251 * scale, 293 * scale, 242 * scale); ctx.bezierCurveTo(292 * scale, 223 * scale, 289 * scale, 224 * scale, 284 * scale, 218 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(280 * scale, 206 * scale); ctx.bezierCurveTo(284 * scale, 206 * scale, 285 * scale, 208 * scale, 285 * scale, 211 * scale); ctx.bezierCurveTo(285 * scale, 241.5 * scale, 285 * scale, 241.5 * scale, 285 * scale, 272 * scale); ctx.bezierCurveTo(284 * scale, 275 * scale, 284 * scale, 275 * scale, 280 * scale, 275 * scale); ctx.bezierCurveTo(279 * scale, 273.5 * scale, 279 * scale, 273.5 * scale, 278 * scale, 272 * scale); ctx.bezierCurveTo(278 * scale, 240.5 * scale, 278 * scale, 240.5 * scale, 278 * scale, 209 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(138 * scale, 298.40000915527344 * scale); ctx.bezierCurveTo(141 * scale, 311.40000915527344 * scale, 151 * scale, 314.40000915527344 * scale, 162 * scale, 316.40000915527344 * scale); ctx.bezierCurveTo(224 * scale, 316.40000915527344 * scale, 200 * scale, 315.90000915527344 * scale, 238 * scale, 315.40000915527344 * scale); ctx.bezierCurveTo(254 * scale, 316.40000915527344 * scale, 261 * scale, 306.40000915527344 * scale, 264 * scale, 298.40000915527344 * scale); ctx.bezierCurveTo(255 * scale, 304.40000915527344 * scale, 250 * scale, 306.40000915527344 * scale, 244 * scale, 306.40000915527344 * scale); ctx.bezierCurveTo(201 * scale, 306.90000915527344 * scale, 201 * scale, 306.90000915527344 * scale, 158 * scale, 307.40000915527344 * scale); ctx.bezierCurveTo(150 * scale, 306.40000915527344 * scale, 148 * scale, 306.40000915527344 * scale, 139 * scale, 300.40000915527344 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(130 * scale, 175.5999984741211 * scale, 123 * scale, 190.5999984741211 * scale, 122 * scale, 205.5999984741211 * scale); ctx.bezierCurveTo(121 * scale, 277.5999984741211 * scale, 122 * scale, 242.5999984741211 * scale, 122 * scale, 279.5999984741211 * scale); ctx.bezierCurveTo(128 * scale, 297.5999984741211 * scale, 137 * scale, 299.5999984741211 * scale, 143 * scale, 300.5999984741211 * scale); ctx.bezierCurveTo(163 * scale, 301.0999984741211 * scale, 163 * scale, 301.0999984741211 * scale, 183 * scale, 301.5999984741211 * scale); ctx.bezierCurveTo(150 * scale, 300.5999984741211 * scale, 135 * scale, 290.5999984741211 * scale, 134 * scale, 267.5999984741211 * scale); ctx.bezierCurveTo(133 * scale, 245.5999984741211 * scale, 146 * scale, 235.5999984741211 * scale, 164 * scale, 235.5999984741211 * scale); ctx.bezierCurveTo(206 * scale, 236.0999984741211 * scale, 206 * scale, 236.0999984741211 * scale, 248 * scale, 236.5999984741211 * scale); ctx.bezierCurveTo(266 * scale, 243.5999984741211 * scale, 268 * scale, 259.5999984741211 * scale, 267 * scale, 266.5999984741211 * scale); ctx.bezierCurveTo(266 * scale, 288.5999984741211 * scale, 251 * scale, 294.5999984741211 * scale, 244 * scale, 297.5999984741211 * scale); ctx.bezierCurveTo(228.5 * scale, 299.5999984741211 * scale, 228.5 * scale, 299.5999984741211 * scale, 213 * scale, 301.5999984741211 * scale); ctx.bezierCurveTo(236 * scale, 301.0999984741211 * scale, 236 * scale, 301.0999984741211 * scale, 259 * scale, 300.5999984741211 * scale); ctx.bezierCurveTo(272 * scale, 295.5999984741211 * scale, 277 * scale, 288.5999984741211 * scale, 278 * scale, 271.5999984741211 * scale); ctx.bezierCurveTo(277.5 * scale, 236.5999984741211 * scale, 277.5 * scale, 236.5999984741211 * scale, 277 * scale, 201.5999984741211 * scale); ctx.bezierCurveTo(276 * scale, 186.5999984741211 * scale, 265 * scale, 178.5999984741211 * scale, 254 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(247.5 * scale, 177.5999984741211 * scale, 247.5 * scale, 177.5999984741211 * scale, 241 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(255 * scale, 202.5999984741211 * scale, 214 * scale, 217.5999984741211 * scale, 201 * scale, 215.5999984741211 * scale); ctx.bezierCurveTo(170 * scale, 215.5999984741211 * scale, 152 * scale, 197.5999984741211 * scale, 161 * scale, 178.5999984741211 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 175.5999984741211 * scale); ctx.bezierCurveTo(153 * scale, 176.0999984741211 * scale, 153 * scale, 176.0999984741211 * scale, 144 * scale, 176.5999984741211 * scale); ctx.bezierCurveTo(125 * scale, 178.5999984741211 * scale, 121 * scale, 196.5999984741211 * scale, 121 * scale, 207.5999984741211 * scale); ctx.bezierCurveTo(121 * scale, 243.20000076293945 * scale, 121 * scale, 243.20000076293945 * scale, 121 * scale, 278.8000030517578 * scale); ctx.bezierCurveTo(126 * scale, 298.8000030517578 * scale, 137 * scale, 300.8000030517578 * scale, 146 * scale, 302.8000030517578 * scale); ctx.bezierCurveTo(200.5 * scale, 302.8000030517578 * scale, 200.5 * scale, 302.8000030517578 * scale, 255 * scale, 302.8000030517578 * scale); ctx.bezierCurveTo(271 * scale, 301.8000030517578 * scale, 279 * scale, 288.8000030517578 * scale, 279 * scale, 273.8000030517578 * scale); ctx.bezierCurveTo(279 * scale, 236.8000030517578 * scale, 279 * scale, 236.8000030517578 * scale, 279 * scale, 199.8000030517578 * scale); ctx.bezierCurveTo(274 * scale, 178.8000030517578 * scale, 263 * scale, 177.8000030517578 * scale, 255 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(248 * scale, 175.8000030517578 * scale, 248 * scale, 175.8000030517578 * scale, 241 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(240 * scale, 175.8000030517578 * scale, 240 * scale, 175.8000030517578 * scale, 239 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(254 * scale, 200.8000030517578 * scale, 222 * scale, 211.8000030517578 * scale, 202 * scale, 212.8000030517578 * scale); ctx.bezierCurveTo(168 * scale, 213.8000030517578 * scale, 151 * scale, 190.8000030517578 * scale, 163 * scale, 176.8000030517578 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#6f0cad ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(198 * scale, 161.4000015258789 * scale); ctx.bezierCurveTo(198 * scale, 186.9000015258789 * scale, 198 * scale, 186.9000015258789 * scale, 198 * scale, 212.4000015258789 * scale); ctx.bezierCurveTo(201 * scale, 212.4000015258789 * scale, 201 * scale, 212.4000015258789 * scale, 204 * scale, 212.4000015258789 * scale); ctx.bezierCurveTo(204 * scale, 186.9000015258789 * scale, 204 * scale, 186.9000015258789 * scale, 204 * scale, 161.4000015258789 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 194 * scale); ctx.bezierCurveTo(188 * scale, 169 * scale, 231 * scale, 179 * scale, 241 * scale, 194 * scale); ctx.bezierCurveTo(239.5 * scale, 196 * scale, 239.5 * scale, 196 * scale, 238 * scale, 198 * scale); ctx.bezierCurveTo(221 * scale, 179 * scale, 182 * scale, 182 * scale, 165 * scale, 198 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(162 * scale, 150.80000019073486 * scale, 241 * scale, 150.80000019073486 * scale, 245 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(242 * scale, 224.80000019073486 * scale, 162 * scale, 228.80000019073486 * scale, 157 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(159 * scale, 188.80000019073486 * scale, 159 * scale, 188.80000019073486 * scale, 161 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(168 * scale, 216.80000019073486 * scale, 231 * scale, 218.80000019073486 * scale, 241 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(236 * scale, 156.80000019073486 * scale, 169 * scale, 152.80000019073486 * scale, 161 * scale, 188.80000019073486 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156 * scale, 188 * scale); ctx.bezierCurveTo(160 * scale, 164 * scale, 183 * scale, 159 * scale, 201 * scale, 158 * scale); ctx.bezierCurveTo(232 * scale, 159 * scale, 244 * scale, 174 * scale, 246 * scale, 188 * scale); ctx.bezierCurveTo(245 * scale, 212 * scale, 213 * scale, 219 * scale, 201 * scale, 218 * scale); ctx.bezierCurveTo(181 * scale, 221 * scale, 158 * scale, 207 * scale, 156 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#6f0cad ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 189 * scale); ctx.bezierCurveTo(166 * scale, 170 * scale, 185 * scale, 165 * scale, 201 * scale, 164 * scale); ctx.bezierCurveTo(227 * scale, 165 * scale, 240 * scale, 178 * scale, 239 * scale, 188 * scale); ctx.bezierCurveTo(239 * scale, 204 * scale, 210 * scale, 210 * scale, 201 * scale, 210 * scale); ctx.bezierCurveTo(182 * scale, 211 * scale, 166 * scale, 200 * scale, 162 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#6f0cad ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131 * scale, 262 * scale); ctx.bezierCurveTo(136 * scale, 241 * scale, 144 * scale, 236 * scale, 158 * scale, 233 * scale); ctx.bezierCurveTo(200.5 * scale, 233 * scale, 229 * scale, 232 * scale, 243 * scale, 233 * scale); ctx.bezierCurveTo(259 * scale, 235 * scale, 267 * scale, 248 * scale, 269 * scale, 260 * scale); ctx.bezierCurveTo(269 * scale, 266.5 * scale, 269 * scale, 266.5 * scale, 269 * scale, 273 * scale); ctx.bezierCurveTo(265 * scale, 290 * scale, 251 * scale, 297 * scale, 242 * scale, 298 * scale); ctx.bezierCurveTo(202 * scale, 298 * scale, 202 * scale, 298 * scale, 162 * scale, 298 * scale); ctx.bezierCurveTo(148 * scale, 298 * scale, 136 * scale, 289 * scale, 132 * scale, 273 * scale); ctx.bezierCurveTo(131.5 * scale, 268 * scale, 131.5 * scale, 268 * scale, 131 * scale, 263 * scale); ctx.bezierCurveTo(135 * scale, 263 * scale, 135 * scale, 263 * scale, 139 * scale, 263 * scale); ctx.bezierCurveTo(139 * scale, 281 * scale, 151 * scale, 287 * scale, 160 * scale, 290 * scale); ctx.bezierCurveTo(200.5 * scale, 290 * scale, 200.5 * scale, 290 * scale, 241 * scale, 290 * scale); ctx.bezierCurveTo(252 * scale, 290 * scale, 257 * scale, 281 * scale, 262 * scale, 271 * scale); ctx.bezierCurveTo(261.5 * scale, 267 * scale, 261.5 * scale, 267 * scale, 261 * scale, 263 * scale); ctx.bezierCurveTo(260 * scale, 249 * scale, 251 * scale, 242 * scale, 241 * scale, 241 * scale); ctx.bezierCurveTo(240.5 * scale, 240.5 * scale, 240.5 * scale, 240.5 * scale, 240 * scale, 240 * scale); ctx.bezierCurveTo(200 * scale, 240 * scale, 200 * scale, 240 * scale, 160 * scale, 240 * scale); ctx.bezierCurveTo(145 * scale, 244 * scale, 142 * scale, 250 * scale, 139 * scale, 264 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 264 * scale); ctx.bezierCurveTo(132 * scale, 244 * scale, 144 * scale, 235 * scale, 157 * scale, 232 * scale); ctx.bezierCurveTo(245 * scale, 232 * scale, 201 * scale, 232 * scale, 245 * scale, 232 * scale); ctx.bezierCurveTo(264 * scale, 235 * scale, 269 * scale, 251 * scale, 270 * scale, 264 * scale); ctx.bezierCurveTo(272 * scale, 291 * scale, 248 * scale, 299 * scale, 242 * scale, 299 * scale); ctx.bezierCurveTo(200 * scale, 299 * scale, 200 * scale, 299 * scale, 158 * scale, 299 * scale); ctx.bezierCurveTo(139 * scale, 298 * scale, 130 * scale, 276 * scale, 130 * scale, 265 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#6f0cad ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(140 * scale, 265.33333587646484 * scale); ctx.bezierCurveTo(141 * scale, 250.33333587646484 * scale, 148 * scale, 244.33333587646484 * scale, 160 * scale, 241.33333587646484 * scale); ctx.bezierCurveTo(200 * scale, 241.33333587646484 * scale, 200 * scale, 241.33333587646484 * scale, 240 * scale, 241.33333587646484 * scale); ctx.bezierCurveTo(256 * scale, 243.33333587646484 * scale, 260 * scale, 255.33333587646484 * scale, 260 * scale, 265.33333587646484 * scale); ctx.bezierCurveTo(261 * scale, 281.33333587646484 * scale, 247 * scale, 289.33333587646484 * scale, 240 * scale, 289.33333587646484 * scale); ctx.bezierCurveTo(161 * scale, 289.33333587646484 * scale, 200.5 * scale, 289.33333587646484 * scale, 161 * scale, 289.33333587646484 * scale); ctx.bezierCurveTo(149 * scale, 288.33333587646484 * scale, 142 * scale, 278.33333587646484 * scale, 140 * scale, 266.33333587646484 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#6f0cad ctx.globalAlpha = 0.5; ctx.scale(1, 1); ctx.translate(105 * scale, 155 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59.27557373046875 * scale, 20.406280517578125 * scale); ctx.bezierCurveTo(74.27557373046875 * scale, 5.406280517578125 * scale, 90.27557373046875 * scale, 6.406280517578125 * scale, 99.27557373046875 * scale, 5.406280517578125 * scale); ctx.bezierCurveTo(120.27557373046875 * scale, 5.406280517578125 * scale, 126.27557373046875 * scale, 10.406280517578125 * scale, 136.27557373046875 * scale, 20.406280517578125 * scale); ctx.bezierCurveTo(157.77557373046875 * scale, 37.906280517578125 * scale, 157.77557373046875 * scale, 37.906280517578125 * scale, 179.27557373046875 * scale, 55.406280517578125 * scale); ctx.bezierCurveTo(190.27557373046875 * scale, 63.406280517578125 * scale, 192.27557373046875 * scale, 77.40628051757812 * scale, 189.27557373046875 * scale, 91.40628051757812 * scale); ctx.bezierCurveTo(183.27557373046875 * scale, 108.40628051757812 * scale, 176.27557373046875 * scale, 110.40628051757812 * scale, 169.27557373046875 * scale, 118.40628051757812 * scale); ctx.bezierCurveTo(152.27557373046875 * scale, 133.40628051757812 * scale, 152.27557373046875 * scale, 133.40628051757812 * scale, 135.27557373046875 * scale, 148.40628051757812 * scale); ctx.bezierCurveTo(87.27557373046875 * scale, 143.40628051757812 * scale, 87.27557373046875 * scale, 143.40628051757812 * scale, 39.27557373046875 * scale, 138.40628051757812 * scale); ctx.bezierCurveTo(26.77557373046875 * scale, 123.40628051757812 * scale, 26.77557373046875 * scale, 123.40628051757812 * scale, 14.27557373046875 * scale, 108.40628051757812 * scale); ctx.bezierCurveTo(2.27557373046875 * scale, 95.40628051757812 * scale, 2.27557373046875 * scale, 92.40628051757812 * scale, 3.27557373046875 * scale, 83.40628051757812 * scale); ctx.bezierCurveTo(4.27557373046875 * scale, 63.406280517578125 * scale, 12.27557373046875 * scale, 60.406280517578125 * scale, 24.27557373046875 * scale, 40.406280517578125 * scale); ctx.closePath(); fill_path(ctx, color[5], color[5], 4 * scale); //#000000 #000000 ctx.globalAlpha = 1; ctx.translate(-110 * scale, -155 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(104 * scale, 237.8000030517578 * scale); ctx.bezierCurveTo(110 * scale, 237.8000030517578 * scale, 110 * scale, 237.8000030517578 * scale, 116 * scale, 237.8000030517578 * scale); ctx.bezierCurveTo(116 * scale, 241.8000030517578 * scale, 116 * scale, 241.8000030517578 * scale, 116 * scale, 245.8000030517578 * scale); ctx.bezierCurveTo(115 * scale, 245.3000030517578 * scale, 115 * scale, 245.3000030517578 * scale, 114 * scale, 244.8000030517578 * scale); ctx.bezierCurveTo(109.5 * scale, 244.8000030517578 * scale, 109.5 * scale, 244.8000030517578 * scale, 105 * scale, 244.8000030517578 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 211.20000457763672 * scale); ctx.bezierCurveTo(106 * scale, 216.20000457763672 * scale, 101 * scale, 234.20000457763672 * scale, 102 * scale, 241.20000457763672 * scale); ctx.bezierCurveTo(102 * scale, 260.2000045776367 * scale, 115 * scale, 269.2000045776367 * scale, 115 * scale, 269.2000045776367 * scale); ctx.bezierCurveTo(116 * scale, 265.2000045776367 * scale, 115.5 * scale, 265.2000045776367 * scale, 116 * scale, 261.2000045776367 * scale); ctx.bezierCurveTo(112 * scale, 264 * scale, 108 * scale, 254 * scale, 106 * scale, 242 * scale); ctx.bezierCurveTo(105 * scale, 232 * scale, 110 * scale, 222 * scale, 115 * scale, 218 * scale); ctx.bezierCurveTo(116 * scale, 216.75 * scale, 115.5 * scale, 217.375 * scale, 116 * scale, 216.75 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(120 * scale, 207 * scale); ctx.bezierCurveTo(115 * scale, 206 * scale, 114 * scale, 209 * scale, 114 * scale, 211 * scale); ctx.bezierCurveTo(114 * scale, 268 * scale, 114 * scale, 241 * scale, 114 * scale, 271 * scale); ctx.bezierCurveTo(115 * scale, 276 * scale, 118 * scale, 276 * scale, 120 * scale, 276 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 120.5 * scale, 274.5 * scale, 121 * scale, 273 * scale); ctx.bezierCurveTo(121 * scale, 241 * scale, 121 * scale, 241 * scale, 121 * scale, 209 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(284 * scale, 238 * scale); ctx.bezierCurveTo(289.5 * scale, 238 * scale, 289.5 * scale, 238 * scale, 295 * scale, 238 * scale); ctx.bezierCurveTo(295 * scale, 241.5 * scale, 295 * scale, 241.5 * scale, 295 * scale, 245 * scale); ctx.bezierCurveTo(289.5 * scale, 245 * scale, 289.5 * scale, 245 * scale, 284 * scale, 245 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(283 * scale, 211 * scale); ctx.bezierCurveTo(293 * scale, 216 * scale, 297 * scale, 231 * scale, 297 * scale, 241 * scale); ctx.bezierCurveTo(298 * scale, 254 * scale, 290 * scale, 265 * scale, 284 * scale, 269 * scale); ctx.bezierCurveTo(283 * scale, 266 * scale, 283.5 * scale, 266 * scale, 283 * scale, 263 * scale); ctx.bezierCurveTo(290 * scale, 260 * scale, 292 * scale, 251 * scale, 293 * scale, 242 * scale); ctx.bezierCurveTo(292 * scale, 223 * scale, 289 * scale, 224 * scale, 284 * scale, 218 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(280 * scale, 206 * scale); ctx.bezierCurveTo(284 * scale, 206 * scale, 285 * scale, 208 * scale, 285 * scale, 211 * scale); ctx.bezierCurveTo(285 * scale, 241.5 * scale, 285 * scale, 241.5 * scale, 285 * scale, 272 * scale); ctx.bezierCurveTo(284 * scale, 275 * scale, 284 * scale, 275 * scale, 280 * scale, 275 * scale); ctx.bezierCurveTo(279 * scale, 273.5 * scale, 279 * scale, 273.5 * scale, 278 * scale, 272 * scale); ctx.bezierCurveTo(278 * scale, 240.5 * scale, 278 * scale, 240.5 * scale, 278 * scale, 209 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(138 * scale, 298.40000915527344 * scale); ctx.bezierCurveTo(141 * scale, 311.40000915527344 * scale, 151 * scale, 314.40000915527344 * scale, 162 * scale, 316.40000915527344 * scale); ctx.bezierCurveTo(224 * scale, 316.40000915527344 * scale, 200 * scale, 315.90000915527344 * scale, 238 * scale, 315.40000915527344 * scale); ctx.bezierCurveTo(254 * scale, 316.40000915527344 * scale, 261 * scale, 306.40000915527344 * scale, 264 * scale, 298.40000915527344 * scale); ctx.bezierCurveTo(255 * scale, 304.40000915527344 * scale, 250 * scale, 306.40000915527344 * scale, 244 * scale, 306.40000915527344 * scale); ctx.bezierCurveTo(201 * scale, 306.90000915527344 * scale, 201 * scale, 306.90000915527344 * scale, 158 * scale, 307.40000915527344 * scale); ctx.bezierCurveTo(150 * scale, 306.40000915527344 * scale, 148 * scale, 306.40000915527344 * scale, 139 * scale, 300.40000915527344 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(130 * scale, 175.5999984741211 * scale, 123 * scale, 190.5999984741211 * scale, 122 * scale, 205.5999984741211 * scale); ctx.bezierCurveTo(121 * scale, 277.5999984741211 * scale, 122 * scale, 242.5999984741211 * scale, 122 * scale, 279.5999984741211 * scale); ctx.bezierCurveTo(128 * scale, 297.5999984741211 * scale, 137 * scale, 299.5999984741211 * scale, 143 * scale, 300.5999984741211 * scale); ctx.bezierCurveTo(163 * scale, 301.0999984741211 * scale, 163 * scale, 301.0999984741211 * scale, 183 * scale, 301.5999984741211 * scale); ctx.bezierCurveTo(150 * scale, 300.5999984741211 * scale, 135 * scale, 290.5999984741211 * scale, 134 * scale, 267.5999984741211 * scale); ctx.bezierCurveTo(133 * scale, 245.5999984741211 * scale, 146 * scale, 235.5999984741211 * scale, 164 * scale, 235.5999984741211 * scale); ctx.bezierCurveTo(206 * scale, 236.0999984741211 * scale, 206 * scale, 236.0999984741211 * scale, 248 * scale, 236.5999984741211 * scale); ctx.bezierCurveTo(266 * scale, 243.5999984741211 * scale, 268 * scale, 259.5999984741211 * scale, 267 * scale, 266.5999984741211 * scale); ctx.bezierCurveTo(266 * scale, 288.5999984741211 * scale, 251 * scale, 294.5999984741211 * scale, 244 * scale, 297.5999984741211 * scale); ctx.bezierCurveTo(228.5 * scale, 299.5999984741211 * scale, 228.5 * scale, 299.5999984741211 * scale, 213 * scale, 301.5999984741211 * scale); ctx.bezierCurveTo(236 * scale, 301.0999984741211 * scale, 236 * scale, 301.0999984741211 * scale, 259 * scale, 300.5999984741211 * scale); ctx.bezierCurveTo(272 * scale, 295.5999984741211 * scale, 277 * scale, 288.5999984741211 * scale, 278 * scale, 271.5999984741211 * scale); ctx.bezierCurveTo(277.5 * scale, 236.5999984741211 * scale, 277.5 * scale, 236.5999984741211 * scale, 277 * scale, 201.5999984741211 * scale); ctx.bezierCurveTo(276 * scale, 186.5999984741211 * scale, 265 * scale, 178.5999984741211 * scale, 254 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(247.5 * scale, 177.5999984741211 * scale, 247.5 * scale, 177.5999984741211 * scale, 241 * scale, 177.5999984741211 * scale); ctx.bezierCurveTo(255 * scale, 202.5999984741211 * scale, 214 * scale, 217.5999984741211 * scale, 201 * scale, 215.5999984741211 * scale); ctx.bezierCurveTo(170 * scale, 215.5999984741211 * scale, 152 * scale, 197.5999984741211 * scale, 161 * scale, 178.5999984741211 * scale); ctx.closePath(); fill_path(ctx, color[2], color[2], 4 * scale); //#9f17f3 #9f17f3 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 175.5999984741211 * scale); ctx.bezierCurveTo(153 * scale, 176.0999984741211 * scale, 153 * scale, 176.0999984741211 * scale, 144 * scale, 176.5999984741211 * scale); ctx.bezierCurveTo(125 * scale, 178.5999984741211 * scale, 121 * scale, 196.5999984741211 * scale, 121 * scale, 207.5999984741211 * scale); ctx.bezierCurveTo(121 * scale, 243.20000076293945 * scale, 121 * scale, 243.20000076293945 * scale, 121 * scale, 278.8000030517578 * scale); ctx.bezierCurveTo(126 * scale, 298.8000030517578 * scale, 137 * scale, 300.8000030517578 * scale, 146 * scale, 302.8000030517578 * scale); ctx.bezierCurveTo(200.5 * scale, 302.8000030517578 * scale, 200.5 * scale, 302.8000030517578 * scale, 255 * scale, 302.8000030517578 * scale); ctx.bezierCurveTo(271 * scale, 301.8000030517578 * scale, 279 * scale, 288.8000030517578 * scale, 279 * scale, 273.8000030517578 * scale); ctx.bezierCurveTo(279 * scale, 236.8000030517578 * scale, 279 * scale, 236.8000030517578 * scale, 279 * scale, 199.8000030517578 * scale); ctx.bezierCurveTo(274 * scale, 178.8000030517578 * scale, 263 * scale, 177.8000030517578 * scale, 255 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(248 * scale, 175.8000030517578 * scale, 248 * scale, 175.8000030517578 * scale, 241 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(240 * scale, 175.8000030517578 * scale, 240 * scale, 175.8000030517578 * scale, 239 * scale, 175.8000030517578 * scale); ctx.bezierCurveTo(254 * scale, 200.8000030517578 * scale, 222 * scale, 211.8000030517578 * scale, 202 * scale, 212.8000030517578 * scale); ctx.bezierCurveTo(168 * scale, 213.8000030517578 * scale, 151 * scale, 190.8000030517578 * scale, 163 * scale, 176.8000030517578 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 6 * scale); //#6f0cad ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(198 * scale, 161.4000015258789 * scale); ctx.bezierCurveTo(198 * scale, 186.9000015258789 * scale, 198 * scale, 186.9000015258789 * scale, 198 * scale, 212.4000015258789 * scale); ctx.bezierCurveTo(201 * scale, 212.4000015258789 * scale, 201 * scale, 212.4000015258789 * scale, 204 * scale, 212.4000015258789 * scale); ctx.bezierCurveTo(204 * scale, 186.9000015258789 * scale, 204 * scale, 186.9000015258789 * scale, 204 * scale, 161.4000015258789 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(161 * scale, 194 * scale); ctx.bezierCurveTo(188 * scale, 169 * scale, 231 * scale, 179 * scale, 241 * scale, 194 * scale); ctx.bezierCurveTo(239.5 * scale, 196 * scale, 239.5 * scale, 196 * scale, 238 * scale, 198 * scale); ctx.bezierCurveTo(221 * scale, 179 * scale, 182 * scale, 182 * scale, 165 * scale, 198 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(162 * scale, 150.80000019073486 * scale, 241 * scale, 150.80000019073486 * scale, 245 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(242 * scale, 224.80000019073486 * scale, 162 * scale, 228.80000019073486 * scale, 157 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(159 * scale, 188.80000019073486 * scale, 159 * scale, 188.80000019073486 * scale, 161 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(168 * scale, 216.80000019073486 * scale, 231 * scale, 218.80000019073486 * scale, 241 * scale, 188.80000019073486 * scale); ctx.bezierCurveTo(236 * scale, 156.80000019073486 * scale, 169 * scale, 152.80000019073486 * scale, 161 * scale, 188.80000019073486 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 2 * scale); //#f0d200 #b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(156 * scale, 188 * scale); ctx.bezierCurveTo(160 * scale, 164 * scale, 183 * scale, 159 * scale, 201 * scale, 158 * scale); ctx.bezierCurveTo(232 * scale, 159 * scale, 244 * scale, 174 * scale, 246 * scale, 188 * scale); ctx.bezierCurveTo(245 * scale, 212 * scale, 213 * scale, 219 * scale, 201 * scale, 218 * scale); ctx.bezierCurveTo(181 * scale, 221 * scale, 158 * scale, 207 * scale, 156 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 2 * scale); //#b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 189 * scale); ctx.bezierCurveTo(166 * scale, 170 * scale, 185 * scale, 165 * scale, 201 * scale, 164 * scale); ctx.bezierCurveTo(227 * scale, 165 * scale, 240 * scale, 178 * scale, 239 * scale, 188 * scale); ctx.bezierCurveTo(239 * scale, 204 * scale, 210 * scale, 210 * scale, 201 * scale, 210 * scale); ctx.bezierCurveTo(182 * scale, 211 * scale, 166 * scale, 200 * scale, 162 * scale, 190 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 2 * scale); //#b09a00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131 * scale, 262 * scale); ctx.bezierCurveTo(136 * scale, 241 * scale, 144 * scale, 236 * scale, 158 * scale, 233 * scale); ctx.bezierCurveTo(200.5 * scale, 233 * scale, 229 * scale, 232 * scale, 243 * scale, 233 * scale); ctx.bezierCurveTo(259 * scale, 235 * scale, 267 * scale, 248 * scale, 269 * scale, 260 * scale); ctx.bezierCurveTo(269 * scale, 266.5 * scale, 269 * scale, 266.5 * scale, 269 * scale, 273 * scale); ctx.bezierCurveTo(265 * scale, 290 * scale, 251 * scale, 297 * scale, 242 * scale, 298 * scale); ctx.bezierCurveTo(202 * scale, 298 * scale, 202 * scale, 298 * scale, 162 * scale, 298 * scale); ctx.bezierCurveTo(148 * scale, 298 * scale, 136 * scale, 289 * scale, 132 * scale, 273 * scale); ctx.bezierCurveTo(131.5 * scale, 268 * scale, 131.5 * scale, 268 * scale, 131 * scale, 263 * scale); ctx.bezierCurveTo(135 * scale, 263 * scale, 135 * scale, 263 * scale, 139 * scale, 263 * scale); ctx.bezierCurveTo(139 * scale, 281 * scale, 151 * scale, 287 * scale, 160 * scale, 290 * scale); ctx.bezierCurveTo(200.5 * scale, 290 * scale, 200.5 * scale, 290 * scale, 241 * scale, 290 * scale); ctx.bezierCurveTo(252 * scale, 290 * scale, 257 * scale, 281 * scale, 262 * scale, 271 * scale); ctx.bezierCurveTo(261.5 * scale, 267 * scale, 261.5 * scale, 267 * scale, 261 * scale, 263 * scale); ctx.bezierCurveTo(260 * scale, 249 * scale, 251 * scale, 242 * scale, 241 * scale, 241 * scale); ctx.bezierCurveTo(240.5 * scale, 240.5 * scale, 240.5 * scale, 240.5 * scale, 240 * scale, 240 * scale); ctx.bezierCurveTo(200 * scale, 240 * scale, 200 * scale, 240 * scale, 160 * scale, 240 * scale); ctx.bezierCurveTo(145 * scale, 244 * scale, 142 * scale, 250 * scale, 139 * scale, 264 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 2 * scale); //#f0d200 #f0d200 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 264 * scale); ctx.bezierCurveTo(132 * scale, 244 * scale, 144 * scale, 235 * scale, 157 * scale, 232 * scale); ctx.bezierCurveTo(245 * scale, 232 * scale, 201 * scale, 232 * scale, 245 * scale, 232 * scale); ctx.bezierCurveTo(264 * scale, 235 * scale, 269 * scale, 251 * scale, 270 * scale, 264 * scale); ctx.bezierCurveTo(272 * scale, 291 * scale, 248 * scale, 299 * scale, 242 * scale, 299 * scale); ctx.bezierCurveTo(200 * scale, 299 * scale, 200 * scale, 299 * scale, 158 * scale, 299 * scale); ctx.bezierCurveTo(139 * scale, 298 * scale, 130 * scale, 276 * scale, 130 * scale, 265 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 2 * scale); //#b09a00 return can; } function create_windmill_chest(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 243 * scale; can.height = 172 * scale; circle(ctx, 119.5 * scale, 140.125 * scale, 19 * scale); fill_path(ctx, undefined, color[1], 5 * scale); //#b7ba00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36.5 * scale, 20.125 * scale); ctx.bezierCurveTo(119.5 * scale, 20.625 * scale, 119.5 * scale, 20.625 * scale, 202.5 * scale, 21.125 * scale); ctx.bezierCurveTo(214.5 * scale, 22.125 * scale, 216.5 * scale, 26.125 * scale, 217.5 * scale, 35.125 * scale); ctx.bezierCurveTo(221 * scale, 76.125 * scale, 221 * scale, 76.125 * scale, 224.5 * scale, 117.125 * scale); ctx.bezierCurveTo(225.5 * scale, 127.125 * scale, 221.5 * scale, 131.125 * scale, 210.5 * scale, 132.125 * scale); ctx.bezierCurveTo(117.5 * scale, 132.125 * scale, 117.5 * scale, 132.125 * scale, 24.5 * scale, 132.125 * scale); ctx.bezierCurveTo(14.5 * scale, 131.125 * scale, 13.5 * scale, 126.125 * scale, 16.5 * scale, 111.125 * scale); ctx.bezierCurveTo(19.5 * scale, 73.125 * scale, 19.5 * scale, 73.125 * scale, 22.5 * scale, 35.125 * scale); ctx.bezierCurveTo(23.5 * scale, 23.125 * scale, 29.5 * scale, 21.125 * scale, 36.5 * scale, 20.125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#000000 #b7ba00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(15.5 * scale, 138.625 * scale); ctx.bezierCurveTo(120 * scale, 138.625 * scale, 120 * scale, 138.625 * scale, 224.5 * scale, 138.625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 10 * scale); //#b7ba00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13.5 * scale, 131.625 * scale); ctx.bezierCurveTo(119.5 * scale, 131.625 * scale, 119.5 * scale, 131.625 * scale, 225.5 * scale, 131.625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 10 * scale); //#b7ba00 circle(ctx, 119.5 * scale, 140.125 * scale, 14.866068747318506 * scale); fill_path(ctx, color[4], color[5], 4 * scale); //#b7ba00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(106.5 * scale, 146.625 * scale); ctx.bezierCurveTo(116.5 * scale, 137.625 * scale, 118.5 * scale, 136.625 * scale, 123.5 * scale, 138.625 * scale); ctx.bezierCurveTo(131.5 * scale, 145.625 * scale, 133.5 * scale, 148.625 * scale, 127.5 * scale, 152.625 * scale); ctx.bezierCurveTo(115.5 * scale, 158.625 * scale, 111.5 * scale, 153.625 * scale, 106.5 * scale, 147.625 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 2 * scale); //#43ba00 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.5 * scale, 146.625 * scale); ctx.bezierCurveTo(116.5 * scale, 159.625 * scale, 124.5 * scale, 156.625 * scale, 132.5 * scale, 146.625 * scale); fill_path(ctx, undefined, color[8], 5 * scale); //#b33d00 ctx.save(); ctx.translate(75.5 * scale, 80.125 * scale); round_rect(ctx, -39 * scale, -40 * scale, 78 * scale, 78 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[9]); //#b33d00 ctx.save(); ctx.translate(167 * scale, 80.125 * scale); round_rect(ctx, -38.5 * scale, -39 * scale, 78 * scale, 78 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[9]); //#b33d00 return can; } function create_cake(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96.5 * scale, 277.34375 * scale); ctx.bezierCurveTo(197.5 * scale, 259.84375 * scale, 197.5 * scale, 259.84375 * scale, 298.5 * scale, 242.34375 * scale); ctx.bezierCurveTo(311.5 * scale, 231.34375 * scale, 307.5 * scale, 168.34375 * scale, 298.5 * scale, 150.34375 * scale); ctx.bezierCurveTo(198 * scale, 170.34375 * scale, 198 * scale, 170.34375 * scale, 97.5 * scale, 190.34375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12 * scale); //#b18849 #866035 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98.5 * scale, 214.34375 * scale); ctx.bezierCurveTo(199 * scale, 196.34375 * scale, 199 * scale, 196.34375 * scale, 299.5 * scale, 178.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#866035 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98.5 * scale, 247.34375 * scale); ctx.bezierCurveTo(201.5 * scale, 229.34375 * scale, 201.5 * scale, 229.34375 * scale, 304.5 * scale, 211.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#866035 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(97.5 * scale, 189.34375 * scale); ctx.bezierCurveTo(97 * scale, 199.84375 * scale, 97 * scale, 199.84375 * scale, 96.5 * scale, 210.34375 * scale); ctx.bezierCurveTo(110.5 * scale, 204.34375 * scale, 110.5 * scale, 204.34375 * scale, 124.5 * scale, 198.34375 * scale); ctx.bezierCurveTo(137.5 * scale, 203.84375 * scale, 137.5 * scale, 203.84375 * scale, 150.5 * scale, 209.34375 * scale); ctx.bezierCurveTo(172 * scale, 197.84375 * scale, 172 * scale, 197.84375 * scale, 193.5 * scale, 186.34375 * scale); ctx.bezierCurveTo(211.5 * scale, 189.84375 * scale, 211.5 * scale, 189.84375 * scale, 229.5 * scale, 193.34375 * scale); ctx.bezierCurveTo(240.5 * scale, 193.34375 * scale, 240.5 * scale, 193.34375 * scale, 251.5 * scale, 193.34375 * scale); ctx.bezierCurveTo(261 * scale, 182.84375 * scale, 261 * scale, 182.84375 * scale, 270.5 * scale, 172.34375 * scale); ctx.bezierCurveTo(287.5 * scale, 169.34375 * scale, 287.5 * scale, 169.34375 * scale, 304.5 * scale, 166.34375 * scale); ctx.bezierCurveTo(304.5 * scale, 156.34375 * scale, 300.5 * scale, 145.34375 * scale, 298.5 * scale, 147.34375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 12 * scale); //#d2c4b9 #c1aca2 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(300.5 * scale, 147.34375 * scale); ctx.bezierCurveTo(293.5 * scale, 121.34375 * scale, 278.5 * scale, 106.34375 * scale, 256.5 * scale, 101.34375 * scale); ctx.bezierCurveTo(176.5 * scale, 145.34375 * scale, 176.5 * scale, 145.34375 * scale, 96.5 * scale, 189.34375 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 12 * scale); //#d8cbc2 #c8b5ac circle(ctx, 252.5 * scale, 129.34375 * scale, 18.027756377319946 * scale); fill_path(ctx, color[7]); //#844b87 circle(ctx, 248.5 * scale, 121.34375 * scale, 8.246211251235321 * scale); fill_path(ctx, color[8]); //#c296c5 return can; } function create_fishfood(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(10 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100.5 * scale, 126.34375 * scale); ctx.bezierCurveTo(151.5 * scale, 104.34375 * scale, 279.5 * scale, 188.34375 * scale, 297.5 * scale, 292.34375 * scale); ctx.bezierCurveTo(222.5 * scale, 307.34375 * scale, 106.5 * scale, 196.34375 * scale, 100.5 * scale, 127.34375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#63767c #424f51 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(106.5 * scale, 131.34375 * scale); ctx.bezierCurveTo(140.5 * scale, 142.34375 * scale, 225.5 * scale, 184.34375 * scale, 290.5 * scale, 287.34375 * scale); ctx.bezierCurveTo(270.5 * scale, 188.34375 * scale, 152.5 * scale, 118.34375 * scale, 107.5 * scale, 131.34375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#6c8288 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(161.5 * scale, 138.34375 * scale, 164.5 * scale, 140.34375 * scale, 168.5 * scale, 142.34375 * scale); ctx.bezierCurveTo(165.5 * scale, 156.34375 * scale, 141.5 * scale, 176.34375 * scale, 126.5 * scale, 179.34375 * scale); ctx.bezierCurveTo(123.5 * scale, 173.34375 * scale, 120.5 * scale, 169.34375 * scale, 120.5 * scale, 169.34375 * scale); ctx.bezierCurveTo(141.5 * scale, 161.34375 * scale, 156.5 * scale, 145.34375 * scale, 155.5 * scale, 136.34375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#536468 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(196.5 * scale, 151.34375 * scale); ctx.bezierCurveTo(211.5 * scale, 158.34375 * scale, 224.5 * scale, 171.34375 * scale, 229.5 * scale, 176.34375 * scale); ctx.bezierCurveTo(246.5 * scale, 163.34375 * scale, 259.5 * scale, 166.34375 * scale, 272.5 * scale, 168.34375 * scale); ctx.bezierCurveTo(254.5 * scale, 146.34375 * scale, 214.5 * scale, 145.34375 * scale, 198.5 * scale, 151.34375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#806f60 #514942 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(154.5 * scale, 222.34375 * scale); ctx.bezierCurveTo(164.5 * scale, 234.34375 * scale, 173.5 * scale, 242.34375 * scale, 178.5 * scale, 245.34375 * scale); ctx.bezierCurveTo(174.5 * scale, 265.34375 * scale, 180.5 * scale, 274.34375 * scale, 186.5 * scale, 283.34375 * scale); ctx.bezierCurveTo(165.5 * scale, 277.34375 * scale, 151.5 * scale, 245.34375 * scale, 155.5 * scale, 224.34375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#806f60 #514942 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(279.5 * scale, 294.34375 * scale); ctx.bezierCurveTo(286.5 * scale, 285.84375 * scale, 286.5 * scale, 285.84375 * scale, 293.5 * scale, 277.34375 * scale); ctx.bezierCurveTo(315.5 * scale, 280.34375 * scale, 315.5 * scale, 280.34375 * scale, 337.5 * scale, 283.34375 * scale); ctx.bezierCurveTo(340.5 * scale, 311.34375 * scale, 317.5 * scale, 326.34375 * scale, 307.5 * scale, 331.34375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#806f60 #514942 ctx.globalAlpha = 1; ctx.translate(-10 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100.5 * scale, 126.34375 * scale); ctx.bezierCurveTo(151.5 * scale, 104.34375 * scale, 279.5 * scale, 188.34375 * scale, 297.5 * scale, 292.34375 * scale); ctx.bezierCurveTo(222.5 * scale, 307.34375 * scale, 106.5 * scale, 196.34375 * scale, 100.5 * scale, 127.34375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12 * scale); //#63767c #424f51 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(106.5 * scale, 131.34375 * scale); ctx.bezierCurveTo(140.5 * scale, 142.34375 * scale, 225.5 * scale, 184.34375 * scale, 290.5 * scale, 287.34375 * scale); ctx.bezierCurveTo(270.5 * scale, 188.34375 * scale, 152.5 * scale, 118.34375 * scale, 107.5 * scale, 131.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#6c8288 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(161.5 * scale, 138.34375 * scale, 164.5 * scale, 140.34375 * scale, 168.5 * scale, 142.34375 * scale); ctx.bezierCurveTo(165.5 * scale, 156.34375 * scale, 141.5 * scale, 176.34375 * scale, 126.5 * scale, 179.34375 * scale); ctx.bezierCurveTo(123.5 * scale, 173.34375 * scale, 120.5 * scale, 169.34375 * scale, 120.5 * scale, 169.34375 * scale); ctx.bezierCurveTo(141.5 * scale, 161.34375 * scale, 156.5 * scale, 145.34375 * scale, 155.5 * scale, 136.34375 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#536468 circle(ctx, 125.5 * scale, 140.34375 * scale, 11.180339887498949 * scale); fill_path(ctx, color[5]); //#202020 circle(ctx, 122.5 * scale, 135.34375 * scale, 5.0990195135927845 * scale); fill_path(ctx, color[6]); //#ffffff ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(196.5 * scale, 151.34375 * scale); ctx.bezierCurveTo(211.5 * scale, 158.34375 * scale, 224.5 * scale, 171.34375 * scale, 229.5 * scale, 176.34375 * scale); ctx.bezierCurveTo(246.5 * scale, 163.34375 * scale, 259.5 * scale, 166.34375 * scale, 272.5 * scale, 168.34375 * scale); ctx.bezierCurveTo(254.5 * scale, 146.34375 * scale, 214.5 * scale, 145.34375 * scale, 198.5 * scale, 151.34375 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 12 * scale); //#806f60 #514942 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(154.5 * scale, 222.34375 * scale); ctx.bezierCurveTo(164.5 * scale, 234.34375 * scale, 173.5 * scale, 242.34375 * scale, 178.5 * scale, 245.34375 * scale); ctx.bezierCurveTo(174.5 * scale, 265.34375 * scale, 180.5 * scale, 274.34375 * scale, 186.5 * scale, 283.34375 * scale); ctx.bezierCurveTo(165.5 * scale, 277.34375 * scale, 151.5 * scale, 245.34375 * scale, 155.5 * scale, 224.34375 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 12 * scale); //#806f60 #514942 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(279.5 * scale, 294.34375 * scale); ctx.bezierCurveTo(286.5 * scale, 285.84375 * scale, 286.5 * scale, 285.84375 * scale, 293.5 * scale, 277.34375 * scale); ctx.bezierCurveTo(315.5 * scale, 280.34375 * scale, 315.5 * scale, 280.34375 * scale, 337.5 * scale, 283.34375 * scale); ctx.bezierCurveTo(340.5 * scale, 311.34375 * scale, 317.5 * scale, 326.34375 * scale, 307.5 * scale, 331.34375 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 12 * scale); //#806f60 #514942 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(296.5 * scale, 287.34375 * scale); ctx.bezierCurveTo(311.5 * scale, 291.34375 * scale, 311.5 * scale, 291.34375 * scale, 326.5 * scale, 295.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[9], 6 * scale); //#756557 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(294.5 * scale, 289.34375 * scale); ctx.bezierCurveTo(308.5 * scale, 297.34375 * scale, 308.5 * scale, 297.34375 * scale, 322.5 * scale, 305.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[9], 6 * scale); //#756557 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(294.5 * scale, 291.34375 * scale); ctx.bezierCurveTo(304 * scale, 303.34375 * scale, 304 * scale, 303.34375 * scale, 313.5 * scale, 315.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[9], 6 * scale); //#756557 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(226.5 * scale, 161.34375 * scale); ctx.bezierCurveTo(230.5 * scale, 160.34375 * scale, 236.5 * scale, 158.34375 * scale, 238.5 * scale, 161.34375 * scale); ctx.bezierCurveTo(238.5 * scale, 157.34375 * scale, 228.5 * scale, 159.34375 * scale, 227.5 * scale, 161.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[9], 4 * scale); //#756557 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(167.5 * scale, 248.34375 * scale); ctx.bezierCurveTo(165.5 * scale, 251.34375 * scale, 168.5 * scale, 256.34375 * scale, 168.5 * scale, 253.34375 * scale); ctx.bezierCurveTo(166.5 * scale, 252.34375 * scale, 168.5 * scale, 246.34375 * scale, 166.5 * scale, 247.34375 * scale); ctx.closePath(); fill_path(ctx, undefined, color[9], 3 * scale); //#756557 return can; } function create_fishfood_cooked(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 309 * scale; can.height = 287 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(10 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34.5 * scale, 38.53125 * scale); ctx.bezierCurveTo(91.5 * scale, 30.53125 * scale, 138.5 * scale, 68.53125 * scale, 169.5 * scale, 93.53125 * scale); ctx.bezierCurveTo(208.5 * scale, 128.53125 * scale, 226.5 * scale, 157.53125 * scale, 233.5 * scale, 209.53125 * scale); ctx.bezierCurveTo(195.5 * scale, 218.53125 * scale, 138.5 * scale, 191.53125 * scale, 105.5 * scale, 157.53125 * scale); ctx.bezierCurveTo(54.5 * scale, 112.53125 * scale, 41.5 * scale, 80.53125 * scale, 33.5 * scale, 38.53125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143.5 * scale, 74.53125 * scale); ctx.bezierCurveTo(164.5 * scale, 73.53125 * scale, 159 * scale, 74.53125 * scale, 174.5 * scale, 74.53125 * scale); ctx.bezierCurveTo(186 * scale, 86.53125 * scale, 186 * scale, 86.53125 * scale, 197.5 * scale, 98.53125 * scale); ctx.bezierCurveTo(186 * scale, 97.03125 * scale, 186 * scale, 97.03125 * scale, 174.5 * scale, 95.53125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.5 * scale, 142.53125 * scale); ctx.bezierCurveTo(92 * scale, 160.03125 * scale, 92 * scale, 160.03125 * scale, 96.5 * scale, 177.53125 * scale); ctx.bezierCurveTo(108 * scale, 181.53125 * scale, 108 * scale, 181.53125 * scale, 119.5 * scale, 185.53125 * scale); ctx.bezierCurveTo(116.5 * scale, 175.53125 * scale, 116.5 * scale, 175.53125 * scale, 113.5 * scale, 165.53125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(236.5 * scale, 189.53125 * scale); ctx.bezierCurveTo(274.5 * scale, 197.53125 * scale, 255.5 * scale, 194.03125 * scale, 274.5 * scale, 198.53125 * scale); ctx.bezierCurveTo(272.5 * scale, 236.53125 * scale, 261.5 * scale, 237.53125 * scale, 242.5 * scale, 248.53125 * scale); ctx.bezierCurveTo(230.5 * scale, 231.03125 * scale, 230.5 * scale, 231.03125 * scale, 218.5 * scale, 213.53125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#975143 #402429 ctx.globalAlpha = 1; ctx.translate(-10 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34.5 * scale, 38.53125 * scale); ctx.bezierCurveTo(91.5 * scale, 30.53125 * scale, 138.5 * scale, 68.53125 * scale, 169.5 * scale, 93.53125 * scale); ctx.bezierCurveTo(208.5 * scale, 128.53125 * scale, 226.5 * scale, 157.53125 * scale, 233.5 * scale, 209.53125 * scale); ctx.bezierCurveTo(195.5 * scale, 218.53125 * scale, 138.5 * scale, 191.53125 * scale, 105.5 * scale, 157.53125 * scale); ctx.bezierCurveTo(54.5 * scale, 112.53125 * scale, 41.5 * scale, 80.53125 * scale, 33.5 * scale, 38.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143.5 * scale, 74.53125 * scale); ctx.bezierCurveTo(164.5 * scale, 73.53125 * scale, 159 * scale, 74.53125 * scale, 174.5 * scale, 74.53125 * scale); ctx.bezierCurveTo(186 * scale, 86.53125 * scale, 186 * scale, 86.53125 * scale, 197.5 * scale, 98.53125 * scale); ctx.bezierCurveTo(186 * scale, 97.03125 * scale, 186 * scale, 97.03125 * scale, 174.5 * scale, 95.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.5 * scale, 142.53125 * scale); ctx.bezierCurveTo(92 * scale, 160.03125 * scale, 92 * scale, 160.03125 * scale, 96.5 * scale, 177.53125 * scale); ctx.bezierCurveTo(108 * scale, 181.53125 * scale, 108 * scale, 181.53125 * scale, 119.5 * scale, 185.53125 * scale); ctx.bezierCurveTo(116.5 * scale, 175.53125 * scale, 116.5 * scale, 175.53125 * scale, 113.5 * scale, 165.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(236.5 * scale, 189.53125 * scale); ctx.bezierCurveTo(274.5 * scale, 197.53125 * scale, 255.5 * scale, 194.03125 * scale, 274.5 * scale, 198.53125 * scale); ctx.bezierCurveTo(272.5 * scale, 236.53125 * scale, 261.5 * scale, 237.53125 * scale, 242.5 * scale, 248.53125 * scale); ctx.bezierCurveTo(230.5 * scale, 231.03125 * scale, 230.5 * scale, 231.03125 * scale, 218.5 * scale, 213.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(109.5 * scale, 51.53125 * scale); ctx.bezierCurveTo(107.5 * scale, 92.53125 * scale, 91.5 * scale, 95.53125 * scale, 59.5 * scale, 101.53125 * scale); fill_path(ctx, color[1], color[2], 7 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 51.53125 * scale); ctx.bezierCurveTo(71 * scale, 64.53125 * scale, 69.5 * scale, 76.53125 * scale, 69.5 * scale, 77.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.5 * scale, 63.53125 * scale); ctx.bezierCurveTo(70.5 * scale, 65.03125 * scale, 70.5 * scale, 65.03125 * scale, 56.5 * scale, 66.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125.5 * scale, 84.53125 * scale); ctx.bezierCurveTo(125.5 * scale, 110.03125 * scale, 125.5 * scale, 110.03125 * scale, 125.5 * scale, 135.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#975143 #402429 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149.5 * scale, 108.53125 * scale); ctx.bezierCurveTo(150 * scale, 137.03125 * scale, 150 * scale, 137.03125 * scale, 150.5 * scale, 165.53125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 7 * scale); //#975143 #402429 return can; } function create_wall(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 130; var h = scale * 142; var x = w / 2; var y = h / 2; can.width = w; can.height = h; ctx.translate(x, y + 7 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; circle(ctx, 0, 0, 60 * scale); fill_path(ctx, color[0]); /* Draw cicle */ ctx.translate(0, -7 * scale); ctx.globalAlpha = 1; circle(ctx, 0, 0, 60 * scale, 0); fill_path(ctx, color[1], color[2], 4 * scale); circle(ctx, 0, 0, 40 * scale); fill_path(ctx, color[3]); circle(ctx, 0, 0, 25 * scale); fill_path(ctx, color[4], color[5], 8 * scale); return can; } function create_delay_wall(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 130; var h = scale * 142; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw cicle */ circle(ctx, x, y, 40 * scale, 0); fill_path(ctx, undefined, color[0], 7 * scale); circle(ctx, x, y, 30 * scale, 0); fill_path(ctx, undefined, color[0], 7 * scale); circle(ctx, x, y, 20 * scale, 0); fill_path(ctx, color[0]); return can; } function create_wall_diamond(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 130 * scale; can.height = 142 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(65 * scale, 80 * scale); ctx.rotate(0.2); round_regular_polygon(ctx, 9, 60 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#5cc5ce #89d1d4 ctx.globalAlpha = 1; ctx.save(); ctx.translate(65 * scale, 71 * scale); ctx.rotate(0.2); round_regular_polygon(ctx, 9, 60 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4); //#5cc5ce #89d1d4 ctx.rotate(-0.32); round_regular_polygon(ctx, 9, 38 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4); //#86d0d1 #95d5d8 ctx.rotate(0.68); round_regular_polygon(ctx, 9, 20 * scale, 8 * scale); fill_path(ctx, color[5], color[6], 6); //#e0f2f6 #b3e0e3 ctx.restore(); return can; } function create_palm(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 372 * scale; can.height = 375 * scale; ctx.globalAlpha = 0.5; ctx.translate(15 * scale, 15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(313.0000305175781 * scale, 76.58523559570312 * scale); ctx.bezierCurveTo(308.0000305175781 * scale, 130.58523559570312 * scale, 279.0000305175781 * scale, 158.58523559570312 * scale, 254.00003051757812 * scale, 175.58523559570312 * scale); ctx.bezierCurveTo(287.0000305175781 * scale, 182.58523559570312 * scale, 274.0000305175781 * scale, 181.08523559570312 * scale, 294.0000305175781 * scale, 186.58523559570312 * scale); ctx.bezierCurveTo(293.5000305175781 * scale, 196.08523559570312 * scale, 293.5000305175781 * scale, 196.08523559570312 * scale, 293.0000305175781 * scale, 205.58523559570312 * scale); ctx.bezierCurveTo(304.0000305175781 * scale, 201.08523559570312 * scale, 304.0000305175781 * scale, 201.08523559570312 * scale, 315.0000305175781 * scale, 196.58523559570312 * scale); ctx.bezierCurveTo(350.0000305175781 * scale, 219.58523559570312 * scale, 343.0000305175781 * scale, 221.58523559570312 * scale, 351.0000305175781 * scale, 230.58523559570312 * scale); ctx.bezierCurveTo(296.0000305175781 * scale, 260.5852355957031 * scale, 264.0000305175781 * scale, 256.5852355957031 * scale, 220.00003051757812 * scale, 236.58523559570312 * scale); ctx.bezierCurveTo(233.00003051757812 * scale, 266.5852355957031 * scale, 232.00003051757812 * scale, 279.5852355957031 * scale, 231.00003051757812 * scale, 295.5852355957031 * scale); ctx.bezierCurveTo(222.00003051757812 * scale, 297.5852355957031 * scale, 222.00003051757812 * scale, 297.5852355957031 * scale, 213.00003051757812 * scale, 299.5852355957031 * scale); ctx.bezierCurveTo(219.50003051757812 * scale, 308.0852355957031 * scale, 219.50003051757812 * scale, 308.0852355957031 * scale, 226.00003051757812 * scale, 316.5852355957031 * scale); ctx.bezierCurveTo(223.00003051757812 * scale, 344.5852355957031 * scale, 216.00003051757812 * scale, 350.5852355957031 * scale, 209.00003051757812 * scale, 363.5852355957031 * scale); ctx.bezierCurveTo(154.00003051757812 * scale, 318.5852355957031 * scale, 156.00003051757812 * scale, 268.5852355957031 * scale, 160.00003051757812 * scale, 238.58523559570312 * scale); ctx.bezierCurveTo(135.00003051757812 * scale, 268.5852355957031 * scale, 125.00003051757812 * scale, 267.5852355957031 * scale, 112.00003051757812 * scale, 272.5852355957031 * scale); ctx.bezierCurveTo(104.50003051757812 * scale, 266.5852355957031 * scale, 104.50003051757812 * scale, 266.5852355957031 * scale, 97.00003051757812 * scale, 260.5852355957031 * scale); ctx.bezierCurveTo(93.00003051757812 * scale, 271.0852355957031 * scale, 93.00003051757812 * scale, 271.0852355957031 * scale, 89.00003051757812 * scale, 281.5852355957031 * scale); ctx.bezierCurveTo(66.00003051757812 * scale, 288.5852355957031 * scale, 59.000030517578125 * scale, 288.5852355957031 * scale, 39.000030517578125 * scale, 285.5852355957031 * scale); ctx.bezierCurveTo(56.000030517578125 * scale, 216.58523559570312 * scale, 91.00003051757812 * scale, 204.58523559570312 * scale, 129.00003051757812 * scale, 189.58523559570312 * scale); ctx.bezierCurveTo(90.00003051757812 * scale, 176.58523559570312 * scale, 89.00003051757812 * scale, 173.58523559570312 * scale, 79.00003051757812 * scale, 166.58523559570312 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 155.08523559570312 * scale, 82.00003051757812 * scale, 155.08523559570312 * scale, 85.00003051757812 * scale, 143.58523559570312 * scale); ctx.bezierCurveTo(75.50003051757812 * scale, 147.58523559570312 * scale, 75.50003051757812 * scale, 147.58523559570312 * scale, 66.00003051757812 * scale, 151.58523559570312 * scale); ctx.bezierCurveTo(44.000030517578125 * scale, 133.58523559570312 * scale, 41.000030517578125 * scale, 124.58523559570312 * scale, 34.000030517578125 * scale, 102.58523559570312 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 81.58523559570312 * scale, 134.00003051757812 * scale, 118.58523559570312 * scale, 150.00003051757812 * scale, 128.58523559570312 * scale); ctx.bezierCurveTo(144.00003051757812 * scale, 102.58523559570312 * scale, 147.00003051757812 * scale, 90.58523559570312 * scale, 150.00003051757812 * scale, 80.58523559570312 * scale); ctx.bezierCurveTo(159.50003051757812 * scale, 79.08523559570312 * scale, 159.50003051757812 * scale, 79.08523559570312 * scale, 169.00003051757812 * scale, 77.58523559570312 * scale); ctx.bezierCurveTo(163.00003051757812 * scale, 72.58523559570312 * scale, 163.00003051757812 * scale, 72.58523559570312 * scale, 157.00003051757812 * scale, 67.58523559570312 * scale); ctx.bezierCurveTo(162.00003051757812 * scale, 42.585235595703125 * scale, 169.00003051757812 * scale, 29.585235595703125 * scale, 182.00003051757812 * scale, 14.585235595703125 * scale); ctx.bezierCurveTo(219.00003051757812 * scale, 48.585235595703125 * scale, 222.00003051757812 * scale, 92.58523559570312 * scale, 218.00003051757812 * scale, 112.58523559570312 * scale); ctx.bezierCurveTo(239.00003051757812 * scale, 95.58523559570312 * scale, 242.00003051757812 * scale, 97.58523559570312 * scale, 249.00003051757812 * scale, 94.58523559570312 * scale); ctx.bezierCurveTo(255.00003051757812 * scale, 103.08523559570312 * scale, 255.00003051757812 * scale, 103.08523559570312 * scale, 261.0000305175781 * scale, 111.58523559570312 * scale); ctx.bezierCurveTo(261.5000305175781 * scale, 99.58523559570312 * scale, 261.5000305175781 * scale, 99.58523559570312 * scale, 262.0000305175781 * scale, 87.58523559570312 * scale); ctx.bezierCurveTo(282.0000305175781 * scale, 77.58523559570312 * scale, 301.0000305175781 * scale, 74.58523559570312 * scale, 314.0000305175781 * scale, 76.58523559570312 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(-15 * scale, -15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(313.0000305175781 * scale, 76.58523559570312 * scale); ctx.bezierCurveTo(308.0000305175781 * scale, 130.58523559570312 * scale, 279.0000305175781 * scale, 158.58523559570312 * scale, 254.00003051757812 * scale, 175.58523559570312 * scale); ctx.bezierCurveTo(287.0000305175781 * scale, 182.58523559570312 * scale, 274.0000305175781 * scale, 181.08523559570312 * scale, 294.0000305175781 * scale, 186.58523559570312 * scale); ctx.bezierCurveTo(293.5000305175781 * scale, 196.08523559570312 * scale, 293.5000305175781 * scale, 196.08523559570312 * scale, 293.0000305175781 * scale, 205.58523559570312 * scale); ctx.bezierCurveTo(304.0000305175781 * scale, 201.08523559570312 * scale, 304.0000305175781 * scale, 201.08523559570312 * scale, 315.0000305175781 * scale, 196.58523559570312 * scale); ctx.bezierCurveTo(350.0000305175781 * scale, 219.58523559570312 * scale, 343.0000305175781 * scale, 221.58523559570312 * scale, 351.0000305175781 * scale, 230.58523559570312 * scale); ctx.bezierCurveTo(296.0000305175781 * scale, 260.5852355957031 * scale, 264.0000305175781 * scale, 256.5852355957031 * scale, 220.00003051757812 * scale, 236.58523559570312 * scale); ctx.bezierCurveTo(233.00003051757812 * scale, 266.5852355957031 * scale, 232.00003051757812 * scale, 279.5852355957031 * scale, 231.00003051757812 * scale, 295.5852355957031 * scale); ctx.bezierCurveTo(222.00003051757812 * scale, 297.5852355957031 * scale, 222.00003051757812 * scale, 297.5852355957031 * scale, 213.00003051757812 * scale, 299.5852355957031 * scale); ctx.bezierCurveTo(219.50003051757812 * scale, 308.0852355957031 * scale, 219.50003051757812 * scale, 308.0852355957031 * scale, 226.00003051757812 * scale, 316.5852355957031 * scale); ctx.bezierCurveTo(223.00003051757812 * scale, 344.5852355957031 * scale, 216.00003051757812 * scale, 350.5852355957031 * scale, 209.00003051757812 * scale, 363.5852355957031 * scale); ctx.bezierCurveTo(154.00003051757812 * scale, 318.5852355957031 * scale, 156.00003051757812 * scale, 268.5852355957031 * scale, 160.00003051757812 * scale, 238.58523559570312 * scale); ctx.bezierCurveTo(135.00003051757812 * scale, 268.5852355957031 * scale, 125.00003051757812 * scale, 267.5852355957031 * scale, 112.00003051757812 * scale, 272.5852355957031 * scale); ctx.bezierCurveTo(104.50003051757812 * scale, 266.5852355957031 * scale, 104.50003051757812 * scale, 266.5852355957031 * scale, 97.00003051757812 * scale, 260.5852355957031 * scale); ctx.bezierCurveTo(93.00003051757812 * scale, 271.0852355957031 * scale, 93.00003051757812 * scale, 271.0852355957031 * scale, 89.00003051757812 * scale, 281.5852355957031 * scale); ctx.bezierCurveTo(66.00003051757812 * scale, 288.5852355957031 * scale, 59.000030517578125 * scale, 288.5852355957031 * scale, 39.000030517578125 * scale, 285.5852355957031 * scale); ctx.bezierCurveTo(56.000030517578125 * scale, 216.58523559570312 * scale, 91.00003051757812 * scale, 204.58523559570312 * scale, 129.00003051757812 * scale, 189.58523559570312 * scale); ctx.bezierCurveTo(90.00003051757812 * scale, 176.58523559570312 * scale, 89.00003051757812 * scale, 173.58523559570312 * scale, 79.00003051757812 * scale, 166.58523559570312 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 155.08523559570312 * scale, 82.00003051757812 * scale, 155.08523559570312 * scale, 85.00003051757812 * scale, 143.58523559570312 * scale); ctx.bezierCurveTo(75.50003051757812 * scale, 147.58523559570312 * scale, 75.50003051757812 * scale, 147.58523559570312 * scale, 66.00003051757812 * scale, 151.58523559570312 * scale); ctx.bezierCurveTo(44.000030517578125 * scale, 133.58523559570312 * scale, 41.000030517578125 * scale, 124.58523559570312 * scale, 34.000030517578125 * scale, 102.58523559570312 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 81.58523559570312 * scale, 134.00003051757812 * scale, 118.58523559570312 * scale, 150.00003051757812 * scale, 128.58523559570312 * scale); ctx.bezierCurveTo(144.00003051757812 * scale, 102.58523559570312 * scale, 147.00003051757812 * scale, 90.58523559570312 * scale, 150.00003051757812 * scale, 80.58523559570312 * scale); ctx.bezierCurveTo(159.50003051757812 * scale, 79.08523559570312 * scale, 159.50003051757812 * scale, 79.08523559570312 * scale, 169.00003051757812 * scale, 77.58523559570312 * scale); ctx.bezierCurveTo(163.00003051757812 * scale, 72.58523559570312 * scale, 163.00003051757812 * scale, 72.58523559570312 * scale, 157.00003051757812 * scale, 67.58523559570312 * scale); ctx.bezierCurveTo(162.00003051757812 * scale, 42.585235595703125 * scale, 169.00003051757812 * scale, 29.585235595703125 * scale, 182.00003051757812 * scale, 14.585235595703125 * scale); ctx.bezierCurveTo(219.00003051757812 * scale, 48.585235595703125 * scale, 222.00003051757812 * scale, 92.58523559570312 * scale, 218.00003051757812 * scale, 112.58523559570312 * scale); ctx.bezierCurveTo(239.00003051757812 * scale, 95.58523559570312 * scale, 242.00003051757812 * scale, 97.58523559570312 * scale, 249.00003051757812 * scale, 94.58523559570312 * scale); ctx.bezierCurveTo(255.00003051757812 * scale, 103.08523559570312 * scale, 255.00003051757812 * scale, 103.08523559570312 * scale, 261.0000305175781 * scale, 111.58523559570312 * scale); ctx.bezierCurveTo(261.5000305175781 * scale, 99.58523559570312 * scale, 261.5000305175781 * scale, 99.58523559570312 * scale, 262.0000305175781 * scale, 87.58523559570312 * scale); ctx.bezierCurveTo(282.0000305175781 * scale, 77.58523559570312 * scale, 301.0000305175781 * scale, 74.58523559570312 * scale, 314.0000305175781 * scale, 76.58523559570312 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(186.00003051757812 * scale, 192.94886779785156 * scale); ctx.bezierCurveTo(185.00003051757812 * scale, 66.94886779785156 * scale, 184.50003051757812 * scale, 104.94886779785156 * scale, 183.00003051757812 * scale, 16.948867797851562 * scale); ctx.bezierCurveTo(216.00003051757812 * scale, 47.94886779785156 * scale, 219.00003051757812 * scale, 80.94886779785156 * scale, 218.00003051757812 * scale, 113.94886779785156 * scale); ctx.bezierCurveTo(209.00003051757812 * scale, 165.94886779785156 * scale, 200.00003051757812 * scale, 176.94886779785156 * scale, 189.00003051757812 * scale, 192.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(190.00003051757812 * scale, 191.94886779785156 * scale); ctx.bezierCurveTo(207.00003051757812 * scale, 348.94886779785156 * scale, 205.00003051757812 * scale, 323.94886779785156 * scale, 209.00003051757812 * scale, 358.94886779785156 * scale); ctx.bezierCurveTo(171.00003051757812 * scale, 334.94886779785156 * scale, 167.00003051757812 * scale, 302.94886779785156 * scale, 161.00003051757812 * scale, 268.94886779785156 * scale); ctx.bezierCurveTo(160.00003051757812 * scale, 218.94886779785156 * scale, 181.00003051757812 * scale, 191.94886779785156 * scale, 189.00003051757812 * scale, 186.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(194.00003051757812 * scale, 195.94886779785156 * scale); ctx.bezierCurveTo(116.00003051757812 * scale, 150.94886779785156 * scale, 116.00003051757812 * scale, 150.94886779785156 * scale, 38.000030517578125 * scale, 105.94886779785156 * scale); ctx.bezierCurveTo(67.00003051757812 * scale, 90.94886779785156 * scale, 96.00003051757812 * scale, 99.94886779785156 * scale, 123.00003051757812 * scale, 111.94886779785156 * scale); ctx.bezierCurveTo(183.00003051757812 * scale, 152.94886779785156 * scale, 179.00003051757812 * scale, 180.94886779785156 * scale, 193.00003051757812 * scale, 194.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(189.00003051757812 * scale, 190.94886779785156 * scale); ctx.bezierCurveTo(250.00003051757812 * scale, 133.94886779785156 * scale, 311.0000305175781 * scale, 78.94886779785156 * scale, 311.0000305175781 * scale, 76.94886779785156 * scale); ctx.bezierCurveTo(306.0000305175781 * scale, 127.94886779785156 * scale, 283.0000305175781 * scale, 148.94886779785156 * scale, 261.0000305175781 * scale, 166.94886779785156 * scale); ctx.bezierCurveTo(220.00003051757812 * scale, 197.94886779785156 * scale, 191.00003051757812 * scale, 194.94886779785156 * scale, 189.00003051757812 * scale, 195.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(189.00003051757812 * scale, 194.94886779785156 * scale); ctx.bezierCurveTo(268.5000305175781 * scale, 211.94886779785156 * scale, 268.5000305175781 * scale, 211.94886779785156 * scale, 348.0000305175781 * scale, 228.94886779785156 * scale); ctx.bezierCurveTo(316.0000305175781 * scale, 247.94886779785156 * scale, 298.0000305175781 * scale, 256.94886779785156 * scale, 250.00003051757812 * scale, 246.94886779785156 * scale); ctx.bezierCurveTo(197.00003051757812 * scale, 229.94886779785156 * scale, 189.00003051757812 * scale, 202.94886779785156 * scale, 188.00003051757812 * scale, 199.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(192.00003051757812 * scale, 191.94886779785156 * scale); ctx.bezierCurveTo(116.50003051757812 * scale, 238.44886779785156 * scale, 116.50003051757812 * scale, 238.44886779785156 * scale, 41.000030517578125 * scale, 284.94886779785156 * scale); ctx.bezierCurveTo(49.000030517578125 * scale, 252.94886779785156 * scale, 56.000030517578125 * scale, 242.94886779785156 * scale, 80.00003051757812 * scale, 215.94886779785156 * scale); ctx.bezierCurveTo(125.00003051757812 * scale, 181.94886779785156 * scale, 174.00003051757812 * scale, 183.94886779785156 * scale, 192.00003051757812 * scale, 191.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 2 * scale); //#e6793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(313.0000305175781 * scale, 76.58523559570312 * scale); ctx.bezierCurveTo(308.0000305175781 * scale, 130.58523559570312 * scale, 279.0000305175781 * scale, 158.58523559570312 * scale, 254.00003051757812 * scale, 175.58523559570312 * scale); ctx.bezierCurveTo(287.0000305175781 * scale, 182.58523559570312 * scale, 274.0000305175781 * scale, 181.08523559570312 * scale, 294.0000305175781 * scale, 186.58523559570312 * scale); ctx.bezierCurveTo(293.5000305175781 * scale, 196.08523559570312 * scale, 293.5000305175781 * scale, 196.08523559570312 * scale, 293.0000305175781 * scale, 205.58523559570312 * scale); ctx.bezierCurveTo(304.0000305175781 * scale, 201.08523559570312 * scale, 304.0000305175781 * scale, 201.08523559570312 * scale, 315.0000305175781 * scale, 196.58523559570312 * scale); ctx.bezierCurveTo(350.0000305175781 * scale, 219.58523559570312 * scale, 343.0000305175781 * scale, 221.58523559570312 * scale, 351.0000305175781 * scale, 230.58523559570312 * scale); ctx.bezierCurveTo(296.0000305175781 * scale, 260.5852355957031 * scale, 264.0000305175781 * scale, 256.5852355957031 * scale, 220.00003051757812 * scale, 236.58523559570312 * scale); ctx.bezierCurveTo(233.00003051757812 * scale, 266.5852355957031 * scale, 232.00003051757812 * scale, 279.5852355957031 * scale, 231.00003051757812 * scale, 295.5852355957031 * scale); ctx.bezierCurveTo(222.00003051757812 * scale, 297.5852355957031 * scale, 222.00003051757812 * scale, 297.5852355957031 * scale, 213.00003051757812 * scale, 299.5852355957031 * scale); ctx.bezierCurveTo(219.50003051757812 * scale, 308.0852355957031 * scale, 219.50003051757812 * scale, 308.0852355957031 * scale, 226.00003051757812 * scale, 316.5852355957031 * scale); ctx.bezierCurveTo(223.00003051757812 * scale, 344.5852355957031 * scale, 216.00003051757812 * scale, 350.5852355957031 * scale, 209.00003051757812 * scale, 363.5852355957031 * scale); ctx.bezierCurveTo(154.00003051757812 * scale, 318.5852355957031 * scale, 156.00003051757812 * scale, 268.5852355957031 * scale, 160.00003051757812 * scale, 238.58523559570312 * scale); ctx.bezierCurveTo(135.00003051757812 * scale, 268.5852355957031 * scale, 125.00003051757812 * scale, 267.5852355957031 * scale, 112.00003051757812 * scale, 272.5852355957031 * scale); ctx.bezierCurveTo(104.50003051757812 * scale, 266.5852355957031 * scale, 104.50003051757812 * scale, 266.5852355957031 * scale, 97.00003051757812 * scale, 260.5852355957031 * scale); ctx.bezierCurveTo(93.00003051757812 * scale, 271.0852355957031 * scale, 93.00003051757812 * scale, 271.0852355957031 * scale, 89.00003051757812 * scale, 281.5852355957031 * scale); ctx.bezierCurveTo(66.00003051757812 * scale, 288.5852355957031 * scale, 59.000030517578125 * scale, 288.5852355957031 * scale, 39.000030517578125 * scale, 285.5852355957031 * scale); ctx.bezierCurveTo(56.000030517578125 * scale, 216.58523559570312 * scale, 91.00003051757812 * scale, 204.58523559570312 * scale, 129.00003051757812 * scale, 189.58523559570312 * scale); ctx.bezierCurveTo(90.00003051757812 * scale, 176.58523559570312 * scale, 89.00003051757812 * scale, 173.58523559570312 * scale, 79.00003051757812 * scale, 166.58523559570312 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 155.08523559570312 * scale, 82.00003051757812 * scale, 155.08523559570312 * scale, 85.00003051757812 * scale, 143.58523559570312 * scale); ctx.bezierCurveTo(75.50003051757812 * scale, 147.58523559570312 * scale, 75.50003051757812 * scale, 147.58523559570312 * scale, 66.00003051757812 * scale, 151.58523559570312 * scale); ctx.bezierCurveTo(44.000030517578125 * scale, 133.58523559570312 * scale, 41.000030517578125 * scale, 124.58523559570312 * scale, 34.000030517578125 * scale, 102.58523559570312 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 81.58523559570312 * scale, 134.00003051757812 * scale, 118.58523559570312 * scale, 150.00003051757812 * scale, 128.58523559570312 * scale); ctx.bezierCurveTo(144.00003051757812 * scale, 102.58523559570312 * scale, 147.00003051757812 * scale, 90.58523559570312 * scale, 150.00003051757812 * scale, 80.58523559570312 * scale); ctx.bezierCurveTo(159.50003051757812 * scale, 79.08523559570312 * scale, 159.50003051757812 * scale, 79.08523559570312 * scale, 169.00003051757812 * scale, 77.58523559570312 * scale); ctx.bezierCurveTo(163.00003051757812 * scale, 72.58523559570312 * scale, 163.00003051757812 * scale, 72.58523559570312 * scale, 157.00003051757812 * scale, 67.58523559570312 * scale); ctx.bezierCurveTo(162.00003051757812 * scale, 42.585235595703125 * scale, 169.00003051757812 * scale, 29.585235595703125 * scale, 182.00003051757812 * scale, 14.585235595703125 * scale); ctx.bezierCurveTo(219.00003051757812 * scale, 48.585235595703125 * scale, 222.00003051757812 * scale, 92.58523559570312 * scale, 218.00003051757812 * scale, 112.58523559570312 * scale); ctx.bezierCurveTo(239.00003051757812 * scale, 95.58523559570312 * scale, 242.00003051757812 * scale, 97.58523559570312 * scale, 249.00003051757812 * scale, 94.58523559570312 * scale); ctx.bezierCurveTo(255.00003051757812 * scale, 103.08523559570312 * scale, 255.00003051757812 * scale, 103.08523559570312 * scale, 261.0000305175781 * scale, 111.58523559570312 * scale); ctx.bezierCurveTo(261.5000305175781 * scale, 99.58523559570312 * scale, 261.5000305175781 * scale, 99.58523559570312 * scale, 262.0000305175781 * scale, 87.58523559570312 * scale); ctx.bezierCurveTo(282.0000305175781 * scale, 77.58523559570312 * scale, 301.0000305175781 * scale, 74.58523559570312 * scale, 314.0000305175781 * scale, 76.58523559570312 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 4 * scale); //#9e793d #5f461f return can; } function create_special_fur(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 248 * scale; can.height = 128 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(137 * scale, 7 * scale); ctx.bezierCurveTo(169 * scale, 14 * scale, 212 * scale, 9 * scale, 241 * scale, 5 * scale); ctx.bezierCurveTo(211 * scale, 63 * scale, 158 * scale, 92 * scale, 103 * scale, 109 * scale); ctx.bezierCurveTo(73 * scale, 126 * scale, 54 * scale, 124 * scale, 6 * scale, 99 * scale); ctx.bezierCurveTo(82 * scale, 63 * scale, 113 * scale, 35 * scale, 137 * scale, 8 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 14 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 124 * scale); ctx.bezierCurveTo(111 * scale, 126 * scale, 162 * scale, 97 * scale, 203 * scale, 61 * scale); ctx.bezierCurveTo(156 * scale, 98 * scale, 131 * scale, 106 * scale, 105 * scale, 109 * scale); ctx.bezierCurveTo(99 * scale, 121 * scale, 87 * scale, 124 * scale, 72 * scale, 124 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 1 * scale); //#5f461f return can; } function create_wall_stone(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 130 * scale; can.height = 148 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(65 * scale, 85 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#6a7570 #939995 ctx.globalAlpha = 1; ctx.save(); ctx.translate(65 * scale, 74 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4); //#6a7570 #939995 ctx.rotate(0.64); round_regular_polygon(ctx, 7, 40 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4); //#9baaa3 #adbcb5 ctx.rotate(0.12); round_regular_polygon(ctx, 7, 23 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[5]); //#8a938e return can; } function create_wall_gold(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = scale * 125; can.height = scale * 139; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(63 * scale, 79 * scale); ctx.rotate(1); round_regular_polygon(ctx, 8, 60 * scale, 10 * scale); fill_path(ctx, color[0]); ctx.restore(); ctx.globalAlpha = 1; ctx.save(); ctx.translate(63 * scale, 69 * scale); ctx.rotate(1); round_regular_polygon(ctx, 8, 60 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4); //#877d36 #a08f47 ctx.rotate(0.56); round_regular_polygon(ctx, 8, 40 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4); //#a7983c #b29e4d ctx.rotate(0.28); round_regular_polygon(ctx, 8, 28 * scale, 8 * scale); fill_path(ctx, color[5]); //#c1b06b ctx.restore(); return can; } function create_door_wood(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 90 * scale; can.height = 101 * scale; ctx.translate(0 * scale, 5 * scale); /* Draw Shadow */ // if (i === 0) { // ctx.globalAlpha = draw_shadow ? 0.5 : 1; // circle(ctx, 44 * scale, 55 * scale, 41 * scale); // fill_path(ctx, color[0]); //#4c3b19 #574122 // } /* Draw Door */ ctx.globalAlpha = 1; circle(ctx, 44 * scale, 45 * scale, 41 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#4c3b19 #574122 circle(ctx, 44 * scale, 45 * scale, 31 * scale); fill_path(ctx, color[3]); //#574122 ctx.save(); ctx.translate(45 * scale, 45 * scale); round_rect(ctx, -9 * scale, -25.5 * scale, 18 * scale, 51 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c4122 ctx.save(); ctx.translate(45 * scale, 45 * scale); round_rect(ctx, -26 * scale, -9 * scale, 52 * scale, 18 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c160f circle(ctx, 45 * scale, 29 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 45 * scale, 61 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 28 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f circle(ctx, 62 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f return can; } function create_door_stone(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 90 * scale; can.height = 98 * scale; ctx.translate(0, 4 * scale); /* Draw Shadow */ // if (i === 0) { // ctx.globalAlpha = draw_shadow ? 0.5 : 1; // ctx.save(); // ctx.translate(44 * scale, 50 * scale); // ctx.rotate(1.4); // round_regular_polygon(ctx, 7, 41 * scale, 10 * scale); // ctx.restore(); // fill_path(ctx, color[0]); //#6a7570 #939995 // } ctx.globalAlpha = 1; ctx.save(); ctx.translate(44 * scale, 44 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 41 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#6a7570 #939995 round_regular_polygon(ctx, 7, 35 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#9baaa3 #adbcb5 round_regular_polygon(ctx, 7, 23 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[5]); //#8a938e ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -9 * scale, -25.5 * scale, 18 * scale, 51 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c4122 ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -26 * scale, -9 * scale, 52 * scale, 18 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c160f circle(ctx, 45 * scale, 29 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 45 * scale, 61 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 28 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f circle(ctx, 62 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f return can; } function create_door_gold(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 90 * scale; can.height = 98 * scale; ctx.translate(0, 4 * scale); /* Draw Shadow */ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(44 * scale, 50 * scale); ctx.rotate(1); round_regular_polygon(ctx, 8, 41 * scale, 10 * scale); fill_path(ctx, color[0]); ctx.restore(); ctx.globalAlpha = 1; ctx.save(); ctx.translate(44 * scale, 44 * scale); ctx.rotate(1); round_regular_polygon(ctx, 8, 41 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#877d36 #a08f47 ctx.rotate(0.56); round_regular_polygon(ctx, 8, 33 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#a7983c #b29e4d ctx.rotate(0.28); round_regular_polygon(ctx, 8, 24 * scale, 8 * scale); fill_path(ctx, color[5]); //#c1b06b ctx.restore(); ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -9 * scale, -25.5 * scale, 18 * scale, 51 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c4122 ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -26 * scale, -9 * scale, 52 * scale, 18 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c160f circle(ctx, 45 * scale, 29 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 45 * scale, 61 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 28 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f circle(ctx, 62 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f return can; } function create_furnace_on(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 300 * scale; can.height = 300 * scale; /*Draw shadow*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(150 * scale, 160 * scale); ctx.rotate(6.28); round_regular_polygon(ctx, 6, 146 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[0]); //#8c8c8c #6c6c6c ctx.globalAlpha = 1; ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(6.28); round_regular_polygon(ctx, 6, 146 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(0); round_regular_polygon(ctx, 6, 105 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[3], color[3], 8 * scale); //#c0c0c0 #c0c0c0 ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(0); round_regular_polygon(ctx, 6, 66 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[2], 8 * scale); //#fe9b41 #6c6c6c ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(0); round_regular_polygon(ctx, 6, 31 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[5], color[6], 8 * scale); //#fffdd5 #ffe135 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(150 * scale, 207 * scale); ctx.bezierCurveTo(150 * scale, 151 * scale, 150 * scale, 101 * scale, 150 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 100 * scale); ctx.bezierCurveTo(118 * scale, 205 * scale, 118 * scale, 207 * scale, 118 * scale, 200 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(183 * scale, 100 * scale); ctx.bezierCurveTo(183 * scale, 203 * scale, 183 * scale, 203 * scale, 183 * scale, 200 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c return can; } function create_furnace_off(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 300 * scale; can.height = 300 * scale; /*Draw shadow*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(150 * scale, 160 * scale); ctx.rotate(6.28); round_regular_polygon(ctx, 6, 146 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[0]); //#8c8c8c #6c6c6c ctx.globalAlpha = 1; ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(6.28); round_regular_polygon(ctx, 6, 146 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(0); round_regular_polygon(ctx, 6, 105 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[3], color[3], 8 * scale); //#c0c0c0 #c0c0c0 ctx.save(); ctx.translate(150 * scale, 150 * scale); ctx.rotate(0); round_regular_polygon(ctx, 6, 66 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[2], 8 * scale); //#fe9b41 #6c6c6c ctx.save(); ctx.translate(131 * scale, 116 * scale); round_regular_polygon(ctx, 7, 17 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[6]); //#454545 ctx.save(); ctx.translate(163 * scale, 168 * scale); round_regular_polygon(ctx, 7, 25 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[6]); //#454545 ctx.save(); ctx.translate(117 * scale, 151 * scale); round_regular_polygon(ctx, 7, 11 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[6]); //#454545 ctx.save(); ctx.translate(167 * scale, 122 * scale); round_regular_polygon(ctx, 7, 12 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[6]); //#454545 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(150 * scale, 207 * scale); ctx.bezierCurveTo(150 * scale, 151 * scale, 150 * scale, 101 * scale, 150 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 100 * scale); ctx.bezierCurveTo(118 * scale, 205 * scale, 118 * scale, 207 * scale, 118 * scale, 200 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(183 * scale, 100 * scale); ctx.bezierCurveTo(183 * scale, 203 * scale, 183 * scale, 203 * scale, 183 * scale, 200 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#8c8c8c #6c6c6c return can; } function create_furnace_slot(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 118 * scale; can.height = 129 * scale; ctx.save(); ctx.translate(90 * scale, 90 * scale); round_rect(ctx, -86.5 * scale, -86 * scale, 110 * scale, 110 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 4); //#000000 #000000 return can; } function create_door_diamond(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 90 * scale; can.height = 98 * scale; ctx.translate(0, 4 * scale); /* Draw Shadow */ // if (i === 0) { // ctx.globalAlpha = draw_shadow ? 0.5 : 1; // ctx.save(); // ctx.translate(44 * scale, 50 * scale); // ctx.rotate(0.2); // round_regular_polygon(ctx, 9, 41 * scale, 10 * scale); // ctx.restore(); // fill_path(ctx, color[0]); //#5cc5ce #89d1d4 // } ctx.globalAlpha = 1; ctx.save(); ctx.translate(44 * scale, 44 * scale); ctx.rotate(0.2); round_regular_polygon(ctx, 9, 41 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#5cc5ce #89d1d4 ctx.rotate(-0.32); round_regular_polygon(ctx, 9, 32 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#86d0d1 #95d5d8 ctx.rotate(0.68); round_regular_polygon(ctx, 9, 23 * scale, 8 * scale); fill_path(ctx, color[5], color[6], 6 * scale); //#e0f2f6 #b3e0e3 ctx.restore(); ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -9 * scale, -25.5 * scale, 18 * scale, 51 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c4122 ctx.save(); ctx.translate(45 * scale, 45 * scale); ctx.rotate(0); round_rect(ctx, -26 * scale, -9 * scale, 52 * scale, 18 * scale, 30 * scale); ctx.restore(); fill_path(ctx, color[4], color[4], 2 * scale); //#1c160f circle(ctx, 45 * scale, 29 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 45 * scale, 61 * scale, 7 * scale); fill_path(ctx, color[5]); //#1c160f circle(ctx, 28 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f circle(ctx, 62 * scale, 45 * scale, 7 * scale); fill_path(ctx, color[5]); //#92160f return can; } function create_coat(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 135 * scale; can.height = 120 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(3.5 * scale, 55.25 * scale); ctx.bezierCurveTo(3.5 * scale, 114.25 * scale, 2.5 * scale, 109.25 * scale, 3.5 * scale, 112.25 * scale); ctx.bezierCurveTo(5.5 * scale, 119.25 * scale, 8.5 * scale, 119.25 * scale, 11.5 * scale, 119.25 * scale); ctx.bezierCurveTo(15.5 * scale, 114.25 * scale, 13.5 * scale, 95.25 * scale, 14.5 * scale, 82.25 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 7 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(6.5 * scale, 43.25 * scale); ctx.bezierCurveTo(3.5 * scale, 27.25 * scale, 7.5 * scale, 20.25 * scale, 25.5 * scale, 11.25 * scale); ctx.bezierCurveTo(45.5 * scale, -0.75 * scale, 73.5 * scale, 1.25 * scale, 107.5 * scale, 10.25 * scale); ctx.bezierCurveTo(131.5 * scale, 21.25 * scale, 125.5 * scale, 34.25 * scale, 125.5 * scale, 36.25 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 7 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(120.5 * scale, 62.25 * scale); ctx.bezierCurveTo(121.5 * scale, 95.25 * scale, 120.5 * scale, 80.25 * scale, 120.5 * scale, 100.25 * scale); ctx.bezierCurveTo(118.5 * scale, 119.25 * scale, 123.5 * scale, 118.25 * scale, 129.5 * scale, 113.25 * scale); ctx.bezierCurveTo(133.5 * scale, 107.25 * scale, 130.5 * scale, 97.25 * scale, 130.5 * scale, 87.25 * scale); ctx.bezierCurveTo(129.5 * scale, 56.25 * scale, 130 * scale, 70.75 * scale, 129.5 * scale, 54.25 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 7 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(17.5 * scale, 27 * scale); ctx.bezierCurveTo(48.5 * scale, 5 * scale, 93.5 * scale, 14 * scale, 118.5 * scale, 26 * scale); ctx.bezierCurveTo(132.5 * scale, 35 * scale, 133.5 * scale, 52 * scale, 132.5 * scale, 68 * scale); ctx.bezierCurveTo(125.5 * scale, 87 * scale, 116.5 * scale, 84 * scale, 96.5 * scale, 75 * scale); ctx.bezierCurveTo(60.5 * scale, 66 * scale, 52.5 * scale, 74 * scale, 37.5 * scale, 78 * scale); ctx.bezierCurveTo(2.5 * scale, 86 * scale, 3.5 * scale, 78 * scale, 1.5 * scale, 61 * scale); ctx.bezierCurveTo(1.5 * scale, 37 * scale, 9.5 * scale, 32 * scale, 15.5 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 7 * scale); //#cfcfcf #000000 return can; } function create_crab_crown(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 501 * scale; can.height = 309 * scale; ctx.translate(0, 6 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126 * scale, 184 * scale); ctx.bezierCurveTo(169 * scale, 196 * scale, 194 * scale, 198 * scale, 227 * scale, 198 * scale); ctx.bezierCurveTo(235 * scale, 222 * scale, 236 * scale, 223 * scale, 241 * scale, 226 * scale); ctx.bezierCurveTo(245 * scale, 228 * scale, 257 * scale, 228 * scale, 263 * scale, 226 * scale); ctx.bezierCurveTo(267 * scale, 225 * scale, 270 * scale, 211 * scale, 275 * scale, 198 * scale); ctx.bezierCurveTo(332 * scale, 194 * scale, 347 * scale, 192 * scale, 372 * scale, 188 * scale); ctx.bezierCurveTo(366 * scale, 174.5 * scale, 366 * scale, 174.5 * scale, 360 * scale, 161 * scale); ctx.bezierCurveTo(253.5 * scale, 162 * scale, 253.5 * scale, 162 * scale, 147 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #94312d ctx.globalAlpha = 1; ctx.translate(0, -6 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 116 * scale); ctx.bezierCurveTo(90 * scale, 101 * scale, 96 * scale, 89 * scale, 106 * scale, 83 * scale); ctx.bezierCurveTo(86 * scale, 79 * scale, 86 * scale, 52 * scale, 93 * scale, 38 * scale); ctx.bezierCurveTo(99 * scale, 51 * scale, 107 * scale, 57 * scale, 122 * scale, 63 * scale); ctx.bezierCurveTo(130 * scale, 53 * scale, 141 * scale, 46 * scale, 161 * scale, 46 * scale); ctx.bezierCurveTo(157 * scale, 31 * scale, 158 * scale, 20 * scale, 169 * scale, 6 * scale); ctx.bezierCurveTo(171 * scale, 24 * scale, 186 * scale, 33 * scale, 198 * scale, 45 * scale); ctx.bezierCurveTo(252 * scale, 45 * scale, 252 * scale, 45 * scale, 306 * scale, 45 * scale); ctx.bezierCurveTo(323 * scale, 33 * scale, 332 * scale, 21 * scale, 335 * scale, 7 * scale); ctx.bezierCurveTo(349 * scale, 21 * scale, 347 * scale, 36 * scale, 345 * scale, 46 * scale); ctx.bezierCurveTo(364 * scale, 46 * scale, 369 * scale, 48 * scale, 377 * scale, 63 * scale); ctx.bezierCurveTo(398 * scale, 58 * scale, 403 * scale, 49 * scale, 409 * scale, 40 * scale); ctx.bezierCurveTo(419 * scale, 57 * scale, 411 * scale, 79 * scale, 398 * scale, 85 * scale); ctx.bezierCurveTo(405 * scale, 100 * scale, 405 * scale, 106 * scale, 401 * scale, 118 * scale); ctx.bezierCurveTo(332.5 * scale, 128.5 * scale, 332.5 * scale, 128.5 * scale, 264 * scale, 139 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#b03431 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(122 * scale, 191 * scale); ctx.bezierCurveTo(123 * scale, 237 * scale, 135 * scale, 245 * scale, 153 * scale, 259 * scale); ctx.bezierCurveTo(167 * scale, 269 * scale, 158 * scale, 281 * scale, 118 * scale, 276 * scale); ctx.bezierCurveTo(104 * scale, 273 * scale, 98 * scale, 268 * scale, 93 * scale, 242 * scale); ctx.bezierCurveTo(89 * scale, 220 * scale, 92 * scale, 201 * scale, 102 * scale, 179 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 10 * scale); //#bd3c33 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(403 * scale, 182 * scale); ctx.bezierCurveTo(414 * scale, 215 * scale, 412 * scale, 232 * scale, 403 * scale, 260 * scale); ctx.bezierCurveTo(395 * scale, 274 * scale, 375 * scale, 272 * scale, 356 * scale, 270 * scale); ctx.bezierCurveTo(345 * scale, 268 * scale, 339 * scale, 262 * scale, 354 * scale, 252 * scale); ctx.bezierCurveTo(370 * scale, 242 * scale, 380 * scale, 225 * scale, 384 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 10 * scale); //#bd3c33 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(155 * scale, 157 * scale); ctx.bezierCurveTo(146 * scale, 189 * scale, 137 * scale, 198 * scale, 114 * scale, 219 * scale); ctx.bezierCurveTo(104 * scale, 212 * scale, 98 * scale, 203 * scale, 89 * scale, 189 * scale); ctx.bezierCurveTo(82 * scale, 178 * scale, 91 * scale, 164 * scale, 93 * scale, 136 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 10 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(347 * scale, 162 * scale); ctx.bezierCurveTo(357 * scale, 195 * scale, 376 * scale, 209 * scale, 387 * scale, 217 * scale); ctx.bezierCurveTo(409 * scale, 201 * scale, 420 * scale, 181 * scale, 416 * scale, 166 * scale); ctx.bezierCurveTo(410 * scale, 150 * scale, 412 * scale, 149 * scale, 408 * scale, 130 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 10 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86 * scale, 134 * scale); ctx.bezierCurveTo(79 * scale, 102 * scale, 92 * scale, 84 * scale, 108 * scale, 92 * scale); ctx.bezierCurveTo(149 * scale, 108 * scale, 184 * scale, 111 * scale, 242 * scale, 111 * scale); ctx.bezierCurveTo(294 * scale, 108 * scale, 341 * scale, 105 * scale, 386 * scale, 98 * scale); ctx.bezierCurveTo(412 * scale, 91 * scale, 417 * scale, 86 * scale, 415 * scale, 133 * scale); ctx.bezierCurveTo(413 * scale, 160 * scale, 413 * scale, 160 * scale, 368 * scale, 174 * scale); ctx.bezierCurveTo(308 * scale, 184 * scale, 291 * scale, 185 * scale, 270 * scale, 186 * scale); ctx.bezierCurveTo(264 * scale, 206 * scale, 262 * scale, 215 * scale, 253 * scale, 215 * scale); ctx.bezierCurveTo(239 * scale, 217 * scale, 239 * scale, 211 * scale, 231 * scale, 186 * scale); ctx.bezierCurveTo(178 * scale, 184 * scale, 156 * scale, 179 * scale, 112 * scale, 162 * scale); ctx.bezierCurveTo(87 * scale, 151 * scale, 90 * scale, 144 * scale, 87 * scale, 137 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 10 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(63 * scale, 98 * scale); ctx.bezierCurveTo(84 * scale, 121 * scale, 109 * scale, 102 * scale, 124 * scale, 117 * scale); ctx.bezierCurveTo(138 * scale, 136 * scale, 123 * scale, 165 * scale, 94 * scale, 150 * scale); ctx.bezierCurveTo(66 * scale, 131 * scale, 64 * scale, 115 * scale, 63 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 10 * scale); //#bd3c33 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(449 * scale, 97 * scale); ctx.bezierCurveTo(446 * scale, 143 * scale, 415 * scale, 151 * scale, 402 * scale, 155 * scale); ctx.bezierCurveTo(386 * scale, 157 * scale, 373 * scale, 133 * scale, 391 * scale, 116 * scale); ctx.bezierCurveTo(402 * scale, 106 * scale, 432 * scale, 124 * scale, 449 * scale, 97 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 10 * scale); //#bd3c33 #94312d return can; } function create_crab_loot(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 304 * scale; can.height = 278 * scale; ctx.translate(10 * scale, 25 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(128 * scale, 137 * scale); ctx.bezierCurveTo(155 * scale, 144 * scale, 223 * scale, 143 * scale, 256 * scale, 122 * scale); ctx.bezierCurveTo(249 * scale, 180 * scale, 210 * scale, 227 * scale, 164 * scale, 242 * scale); ctx.bezierCurveTo(74 * scale, 213 * scale, 99 * scale, 166 * scale, 127 * scale, 138 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(284 * scale, 52 * scale); ctx.bezierCurveTo(126 * scale, 112 * scale, 89 * scale, 177 * scale, 170 * scale, 241 * scale); ctx.bezierCurveTo(103 * scale, 275 * scale, 20 * scale, 239 * scale, 12 * scale, 159 * scale); ctx.bezierCurveTo(5 * scale, 76 * scale, 75 * scale, 4 * scale, 165 * scale, 13 * scale); ctx.bezierCurveTo(233 * scale, 15 * scale, 260 * scale, 33 * scale, 284 * scale, 52 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(-10 * scale, -25 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(128 * scale, 137 * scale); ctx.bezierCurveTo(155 * scale, 144 * scale, 223 * scale, 143 * scale, 256 * scale, 122 * scale); ctx.bezierCurveTo(249 * scale, 180 * scale, 210 * scale, 227 * scale, 164 * scale, 242 * scale); ctx.bezierCurveTo(74 * scale, 213 * scale, 99 * scale, 166 * scale, 127 * scale, 138 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 15 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(284 * scale, 52 * scale); ctx.bezierCurveTo(126 * scale, 112 * scale, 89 * scale, 177 * scale, 170 * scale, 241 * scale); ctx.bezierCurveTo(103 * scale, 275 * scale, 20 * scale, 239 * scale, 12 * scale, 159 * scale); ctx.bezierCurveTo(5 * scale, 76 * scale, 75 * scale, 4 * scale, 165 * scale, 13 * scale); ctx.bezierCurveTo(233 * scale, 15 * scale, 260 * scale, 33 * scale, 284 * scale, 52 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 15 * scale); //#9e793d #5f461f return can; } function create_bed(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 175 * scale; can.height = 169 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(19 * scale, 139 * scale); ctx.bezierCurveTo(18 * scale, 163 * scale, 22 * scale, 156 * scale, 53 * scale, 157 * scale); ctx.bezierCurveTo(97.5 * scale, 157 * scale, 97.5 * scale, 157 * scale, 142 * scale, 157 * scale); ctx.bezierCurveTo(150 * scale, 157 * scale, 153 * scale, 156 * scale, 154 * scale, 142 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d ctx.globalAlpha = 1; ctx.translate(0, -3 * scale); ctx.save(); ctx.translate(86.5 * scale, 81.5 * scale); round_rect(ctx, -66.5 * scale, -65.5 * scale, 133 * scale, 131 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a ctx.save(); ctx.translate(84.5 * scale, 79 * scale); round_rect(ctx, -50.5 * scale, -49 * scale, 101 * scale, 98 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[2], 5 * scale); //#261912 #3f332a ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42 * scale, 54 * scale); ctx.bezierCurveTo(37 * scale, 48 * scale, 39 * scale, 44 * scale, 38 * scale, 41 * scale); ctx.bezierCurveTo(42 * scale, 40 * scale, 45 * scale, 40 * scale, 50 * scale, 41 * scale); ctx.bezierCurveTo(85 * scale, 36 * scale, 98 * scale, 37 * scale, 116 * scale, 42 * scale); ctx.bezierCurveTo(132 * scale, 39 * scale, 132 * scale, 39 * scale, 133 * scale, 56 * scale); ctx.bezierCurveTo(136 * scale, 73 * scale, 136 * scale, 84 * scale, 132 * scale, 106 * scale); ctx.bezierCurveTo(47 * scale, 113 * scale, 85.5 * scale, 106 * scale, 39 * scale, 106 * scale); ctx.bezierCurveTo(32 * scale, 81 * scale, 38 * scale, 60 * scale, 42 * scale, 55 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#eee6c5 #d1c599 ctx.save(); ctx.translate(28 * scale, 24 * scale); ctx.rotate(0); round_rect(ctx, -14 * scale, -14 * scale, 28 * scale, 28 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a ctx.save(); ctx.translate(143 * scale, 23 * scale); ctx.rotate(0); round_rect(ctx, -14 * scale, -14 * scale, 28 * scale, 28 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 80 * scale); ctx.bezierCurveTo(73 * scale, 78 * scale, 84 * scale, 74 * scale, 100 * scale, 64 * scale); ctx.bezierCurveTo(111 * scale, 57 * scale, 125 * scale, 67 * scale, 108 * scale, 84 * scale); ctx.bezierCurveTo(96 * scale, 95 * scale, 86 * scale, 96 * scale, 70 * scale, 88 * scale); ctx.bezierCurveTo(62.5 * scale, 84 * scale, 62.5 * scale, 84 * scale, 55 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#8c2020 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(17 * scale, 112 * scale); ctx.bezierCurveTo(14 * scale, 146 * scale, 27 * scale, 152 * scale, 37 * scale, 149 * scale); ctx.bezierCurveTo(78 * scale, 155 * scale, 128 * scale, 150 * scale, 146 * scale, 150 * scale); ctx.bezierCurveTo(158 * scale, 144 * scale, 158 * scale, 121 * scale, 153 * scale, 114 * scale); ctx.closePath(); fill_path(ctx, color[8], color[9], 5 * scale); //#86509b #703a99 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(127 * scale, 111 * scale); ctx.bezierCurveTo(133 * scale, 136 * scale, 115 * scale, 149 * scale, 88 * scale, 150 * scale); ctx.bezierCurveTo(119.5 * scale, 151 * scale, 119.5 * scale, 151 * scale, 151 * scale, 152 * scale); ctx.bezierCurveTo(159 * scale, 136 * scale, 155 * scale, 126 * scale, 154 * scale, 113 * scale); ctx.closePath(); fill_path(ctx, color[9]); //#8c2523 ctx.globalAlpha = 0.5; ctx.translate(0, 3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(15 * scale, 117 * scale); ctx.bezierCurveTo(34 * scale, 109 * scale, 61 * scale, 106 * scale, 94 * scale, 109 * scale); ctx.bezierCurveTo(126 * scale, 110 * scale, 142 * scale, 113 * scale, 154 * scale, 119 * scale); ctx.bezierCurveTo(154 * scale, 123 * scale, 154 * scale, 123 * scale, 154 * scale, 127 * scale); ctx.bezierCurveTo(127 * scale, 118 * scale, 15 * scale, 122 * scale, 18 * scale, 129 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d ctx.globalAlpha = 1; ctx.translate(0, -3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 127 * scale); ctx.bezierCurveTo(13 * scale, 117 * scale, 12 * scale, 109 * scale, 15 * scale, 103 * scale); ctx.bezierCurveTo(16 * scale, 95 * scale, 21 * scale, 92 * scale, 60 * scale, 93 * scale); ctx.bezierCurveTo(91 * scale, 93 * scale, 118 * scale, 93 * scale, 143 * scale, 96 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 155 * scale, 99 * scale, 156 * scale, 112 * scale); ctx.bezierCurveTo(157 * scale, 124 * scale, 157 * scale, 127 * scale, 156 * scale, 128 * scale); ctx.bezierCurveTo(138 * scale, 112 * scale, 100 * scale, 118 * scale, 84 * scale, 118 * scale); ctx.bezierCurveTo(28 * scale, 118 * scale, 20 * scale, 120 * scale, 16 * scale, 127 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#eee6c5 #d1c599 ctx.save(); ctx.translate(27.5 * scale, 138.5 * scale); round_rect(ctx, -13.5 * scale, -14.5 * scale, 27 * scale, 29 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a ctx.save(); ctx.translate(143.5 * scale, 137 * scale); round_rect(ctx, -13.5 * scale, -14 * scale, 27 * scale, 28 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a return can; } function create_bed_top(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 175 * scale; can.height = 169 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(17 * scale, 112 * scale); ctx.bezierCurveTo(14 * scale, 146 * scale, 27 * scale, 152 * scale, 37 * scale, 149 * scale); ctx.bezierCurveTo(78 * scale, 155 * scale, 128 * scale, 150 * scale, 146 * scale, 150 * scale); ctx.bezierCurveTo(158 * scale, 144 * scale, 158 * scale, 121 * scale, 153 * scale, 114 * scale); ctx.closePath(); fill_path(ctx, color[8], color[9], 5 * scale); //#86509b #703a99 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(127 * scale, 111 * scale); ctx.bezierCurveTo(133 * scale, 136 * scale, 115 * scale, 149 * scale, 88 * scale, 150 * scale); ctx.bezierCurveTo(119.5 * scale, 151 * scale, 119.5 * scale, 151 * scale, 151 * scale, 152 * scale); ctx.bezierCurveTo(159 * scale, 136 * scale, 155 * scale, 126 * scale, 154 * scale, 113 * scale); ctx.closePath(); fill_path(ctx, color[9]); //#8c2523 ctx.globalAlpha = 0.5; ctx.translate(0, 3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(15 * scale, 117 * scale); ctx.bezierCurveTo(34 * scale, 109 * scale, 61 * scale, 106 * scale, 94 * scale, 109 * scale); ctx.bezierCurveTo(126 * scale, 110 * scale, 142 * scale, 113 * scale, 154 * scale, 119 * scale); ctx.bezierCurveTo(154 * scale, 123 * scale, 154 * scale, 123 * scale, 154 * scale, 127 * scale); ctx.bezierCurveTo(127 * scale, 118 * scale, 15 * scale, 122 * scale, 18 * scale, 129 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d ctx.globalAlpha = 1; ctx.translate(0, -3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 127 * scale); ctx.bezierCurveTo(13 * scale, 117 * scale, 12 * scale, 109 * scale, 15 * scale, 103 * scale); ctx.bezierCurveTo(16 * scale, 95 * scale, 21 * scale, 92 * scale, 60 * scale, 93 * scale); ctx.bezierCurveTo(91 * scale, 93 * scale, 118 * scale, 93 * scale, 143 * scale, 96 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 155 * scale, 99 * scale, 156 * scale, 112 * scale); ctx.bezierCurveTo(157 * scale, 124 * scale, 157 * scale, 127 * scale, 156 * scale, 128 * scale); ctx.bezierCurveTo(138 * scale, 112 * scale, 100 * scale, 118 * scale, 84 * scale, 118 * scale); ctx.bezierCurveTo(28 * scale, 118 * scale, 20 * scale, 120 * scale, 16 * scale, 127 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#eee6c5 #d1c599 ctx.save(); ctx.translate(27.5 * scale, 138.5 * scale); round_rect(ctx, -13.5 * scale, -14.5 * scale, 27 * scale, 29 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a ctx.save(); ctx.translate(143.5 * scale, 137 * scale); round_rect(ctx, -13.5 * scale, -14 * scale, 27 * scale, 28 * scale, 4 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#554139 #3f332a return can; } function create_crab_spear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 115 * scale; can.height = 585 * scale; ctx.scale(-1, 1); ctx.translate(-110 * scale, 0); ctx.translate(10 * scale, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(51.5 * scale, 342 * scale); round_rect(ctx, -14.5 * scale, -225 * scale, 29 * scale, 450 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54 * scale, 83 * scale); ctx.bezierCurveTo(70 * scale, 69 * scale, 78 * scale, 62 * scale, 82 * scale, 40 * scale); ctx.bezierCurveTo(93 * scale, 48 * scale, 103 * scale, 64 * scale, 95 * scale, 102 * scale); ctx.bezierCurveTo(60 * scale, 114 * scale, 53 * scale, 103 * scale, 54 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 97 * scale); ctx.bezierCurveTo(56 * scale, 102 * scale, 43 * scale, 77 * scale, 71 * scale, 6 * scale); ctx.bezierCurveTo(34 * scale, 10 * scale, 6 * scale, 43 * scale, 5 * scale, 76 * scale); ctx.bezierCurveTo(4 * scale, 98 * scale, 15 * scale, 130 * scale, 64 * scale, 130 * scale); ctx.bezierCurveTo(76 * scale, 129 * scale, 95 * scale, 113 * scale, 97 * scale, 97 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 176 * scale); ctx.bezierCurveTo(74 * scale, 175 * scale, 82 * scale, 169 * scale, 96 * scale, 155 * scale); ctx.bezierCurveTo(103 * scale, 183 * scale, 95 * scale, 214 * scale, 54 * scale, 219 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 176 * scale); ctx.bezierCurveTo(25 * scale, 177 * scale, 16 * scale, 164 * scale, 7 * scale, 156 * scale); ctx.bezierCurveTo(0 * scale, 186 * scale, 10 * scale, 201 * scale, 43 * scale, 220 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 403 * scale); ctx.bezierCurveTo(47 * scale, 412 * scale, 58 * scale, 412 * scale, 67 * scale, 403 * scale); ctx.bezierCurveTo(66.5 * scale, 434 * scale, 66.5 * scale, 434 * scale, 66 * scale, 465 * scale); ctx.bezierCurveTo(56 * scale, 480 * scale, 40 * scale, 472 * scale, 36 * scale, 465 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59 * scale, 67 * scale); ctx.bezierCurveTo(47 * scale, 97 * scale, 18 * scale, 117 * scale, 11 * scale, 110 * scale); ctx.bezierCurveTo(11 * scale, 115 * scale, 15 * scale, 122 * scale, 23 * scale, 124 * scale); ctx.bezierCurveTo(46 * scale, 118 * scale, 52 * scale, 113 * scale, 62 * scale, 86 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 125 * scale); ctx.bezierCurveTo(47 * scale, 136 * scale, 57 * scale, 134 * scale, 77 * scale, 127 * scale); ctx.bezierCurveTo(71 * scale, 158 * scale, 71 * scale, 159 * scale, 66 * scale, 159 * scale); ctx.bezierCurveTo(50.5 * scale, 156.5 * scale, 50.5 * scale, 156.5 * scale, 35 * scale, 154 * scale); ctx.bezierCurveTo(31 * scale, 145 * scale, 31 * scale, 136 * scale, 31 * scale, 125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 171 * scale); ctx.bezierCurveTo(32 * scale, 221 * scale, 43 * scale, 233 * scale, 70 * scale, 247 * scale); ctx.bezierCurveTo(75 * scale, 234 * scale, 75 * scale, 230 * scale, 72 * scale, 221 * scale); ctx.bezierCurveTo(48 * scale, 206 * scale, 54 * scale, 188 * scale, 50 * scale, 176 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60 * scale, 68 * scale); ctx.bezierCurveTo(63 * scale, 69 * scale, 65 * scale, 71 * scale, 67 * scale, 77 * scale); ctx.bezierCurveTo(61 * scale, 123 * scale, 52 * scale, 137 * scale, 42 * scale, 150 * scale); ctx.bezierCurveTo(38 * scale, 151 * scale, 38 * scale, 151 * scale, 34 * scale, 152 * scale); ctx.bezierCurveTo(33 * scale, 146.5 * scale, 33 * scale, 146.5 * scale, 32 * scale, 141 * scale); ctx.bezierCurveTo(49 * scale, 118 * scale, 63 * scale, 87 * scale, 59 * scale, 68 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(71 * scale, 172 * scale); ctx.bezierCurveTo(56 * scale, 222 * scale, 49 * scale, 234 * scale, 35 * scale, 248 * scale); ctx.bezierCurveTo(30 * scale, 236 * scale, 30 * scale, 230 * scale, 31 * scale, 217 * scale); ctx.bezierCurveTo(44 * scale, 202 * scale, 49 * scale, 191 * scale, 52 * scale, 172 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 151 * scale); ctx.bezierCurveTo(27 * scale, 165 * scale, 31 * scale, 173 * scale, 36 * scale, 178 * scale); ctx.bezierCurveTo(56 * scale, 185 * scale, 73 * scale, 184 * scale, 71 * scale, 170 * scale); ctx.bezierCurveTo(72 * scale, 154 * scale, 71 * scale, 154 * scale, 63 * scale, 155 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#58371d #452f26 ctx.translate(-10 * scale, -10 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(51.5 * scale, 342 * scale); round_rect(ctx, -14.5 * scale, -225 * scale, 29 * scale, 450 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 5 * scale); //#58371d #452f26 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54 * scale, 83 * scale); ctx.bezierCurveTo(70 * scale, 69 * scale, 78 * scale, 62 * scale, 82 * scale, 40 * scale); ctx.bezierCurveTo(93 * scale, 48 * scale, 103 * scale, 64 * scale, 95 * scale, 102 * scale); ctx.bezierCurveTo(60 * scale, 114 * scale, 53 * scale, 103 * scale, 54 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 97 * scale); ctx.bezierCurveTo(56 * scale, 102 * scale, 43 * scale, 77 * scale, 71 * scale, 6 * scale); ctx.bezierCurveTo(34 * scale, 10 * scale, 6 * scale, 43 * scale, 5 * scale, 76 * scale); ctx.bezierCurveTo(4 * scale, 98 * scale, 15 * scale, 130 * scale, 64 * scale, 130 * scale); ctx.bezierCurveTo(76 * scale, 129 * scale, 95 * scale, 113 * scale, 97 * scale, 97 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 6 * scale); //#e35a35 #af2f2a ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 403 * scale); ctx.bezierCurveTo(47 * scale, 412 * scale, 58 * scale, 412 * scale, 67 * scale, 403 * scale); ctx.bezierCurveTo(66.5 * scale, 434 * scale, 66.5 * scale, 434 * scale, 66 * scale, 465 * scale); ctx.bezierCurveTo(56 * scale, 480 * scale, 40 * scale, 472 * scale, 36 * scale, 465 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(37 * scale, 427 * scale); ctx.bezierCurveTo(47 * scale, 435 * scale, 55 * scale, 435 * scale, 67 * scale, 427 * scale); fill_path(ctx, undefined, color[8], 6 * scale); //#9e793d #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 448 * scale); ctx.bezierCurveTo(46 * scale, 454 * scale, 54 * scale, 457 * scale, 65 * scale, 449 * scale); fill_path(ctx, undefined, color[8], 6 * scale); //#9e793d #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 176 * scale); ctx.bezierCurveTo(74 * scale, 175 * scale, 82 * scale, 169 * scale, 96 * scale, 155 * scale); ctx.bezierCurveTo(103 * scale, 183 * scale, 95 * scale, 214 * scale, 54 * scale, 219 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 176 * scale); ctx.bezierCurveTo(25 * scale, 177 * scale, 16 * scale, 164 * scale, 7 * scale, 156 * scale); ctx.bezierCurveTo(0 * scale, 186 * scale, 10 * scale, 201 * scale, 43 * scale, 220 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#de5445 #94312d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59 * scale, 67 * scale); ctx.bezierCurveTo(47 * scale, 97 * scale, 18 * scale, 117 * scale, 11 * scale, 110 * scale); ctx.bezierCurveTo(11 * scale, 115 * scale, 15 * scale, 122 * scale, 23 * scale, 124 * scale); ctx.bezierCurveTo(46 * scale, 118 * scale, 52 * scale, 113 * scale, 62 * scale, 86 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 125 * scale); ctx.bezierCurveTo(47 * scale, 136 * scale, 57 * scale, 134 * scale, 77 * scale, 127 * scale); ctx.bezierCurveTo(71 * scale, 158 * scale, 71 * scale, 159 * scale, 66 * scale, 159 * scale); ctx.bezierCurveTo(50.5 * scale, 156.5 * scale, 50.5 * scale, 156.5 * scale, 35 * scale, 154 * scale); ctx.bezierCurveTo(31 * scale, 145 * scale, 31 * scale, 136 * scale, 31 * scale, 125 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 171 * scale); ctx.bezierCurveTo(32 * scale, 221 * scale, 43 * scale, 233 * scale, 70 * scale, 247 * scale); ctx.bezierCurveTo(75 * scale, 234 * scale, 75 * scale, 230 * scale, 72 * scale, 221 * scale); ctx.bezierCurveTo(48 * scale, 206 * scale, 54 * scale, 188 * scale, 50 * scale, 176 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60 * scale, 68 * scale); ctx.bezierCurveTo(63 * scale, 69 * scale, 65 * scale, 71 * scale, 67 * scale, 77 * scale); ctx.bezierCurveTo(61 * scale, 123 * scale, 52 * scale, 137 * scale, 42 * scale, 150 * scale); ctx.bezierCurveTo(38 * scale, 151 * scale, 38 * scale, 151 * scale, 34 * scale, 152 * scale); ctx.bezierCurveTo(33 * scale, 146.5 * scale, 33 * scale, 146.5 * scale, 32 * scale, 141 * scale); ctx.bezierCurveTo(49 * scale, 118 * scale, 63 * scale, 87 * scale, 59 * scale, 68 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(71 * scale, 172 * scale); ctx.bezierCurveTo(56 * scale, 222 * scale, 49 * scale, 234 * scale, 35 * scale, 248 * scale); ctx.bezierCurveTo(30 * scale, 236 * scale, 30 * scale, 230 * scale, 31 * scale, 217 * scale); ctx.bezierCurveTo(44 * scale, 202 * scale, 49 * scale, 191 * scale, 52 * scale, 172 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 151 * scale); ctx.bezierCurveTo(27 * scale, 165 * scale, 31 * scale, 173 * scale, 36 * scale, 178 * scale); ctx.bezierCurveTo(56 * scale, 185 * scale, 73 * scale, 184 * scale, 71 * scale, 170 * scale); ctx.bezierCurveTo(72 * scale, 154 * scale, 71 * scale, 154 * scale, 63 * scale, 155 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 6 * scale); //#c3be9a #7f6d52 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53 * scale, 113 * scale); ctx.bezierCurveTo(65 * scale, 140 * scale, 75 * scale, 166 * scale, 52 * scale, 169 * scale); ctx.bezierCurveTo(29 * scale, 168 * scale, 41 * scale, 143 * scale, 53 * scale, 112 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#de5445 #94312d return can; } function create_wood_spear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 81 * scale; can.height = 626 * scale; ctx.translate(20 * scale, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 565 * scale); ctx.bezierCurveTo(56 * scale, 586 * scale, 53 * scale, 591 * scale, 40 * scale, 592 * scale); ctx.bezierCurveTo(28 * scale, 591 * scale, 27 * scale, 583 * scale, 28 * scale, 557 * scale); ctx.bezierCurveTo(27.5 * scale, 346 * scale, 27.5 * scale, 346 * scale, 27 * scale, 135 * scale); ctx.bezierCurveTo(26 * scale, 74 * scale, 36 * scale, 26 * scale, 41 * scale, 15 * scale); ctx.bezierCurveTo(54 * scale, 51 * scale, 54 * scale, 81 * scale, 55 * scale, 128 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(-20 * scale, -20 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 565 * scale); ctx.bezierCurveTo(56 * scale, 586 * scale, 53 * scale, 591 * scale, 40 * scale, 592 * scale); ctx.bezierCurveTo(28 * scale, 591 * scale, 27 * scale, 583 * scale, 28 * scale, 557 * scale); ctx.bezierCurveTo(27.5 * scale, 346 * scale, 27.5 * scale, 346 * scale, 27 * scale, 135 * scale); ctx.bezierCurveTo(26 * scale, 74 * scale, 36 * scale, 26 * scale, 41 * scale, 15 * scale); ctx.bezierCurveTo(54 * scale, 51 * scale, 54 * scale, 81 * scale, 55 * scale, 128 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 129 * scale); ctx.bezierCurveTo(32 * scale, 135 * scale, 48 * scale, 136 * scale, 53 * scale, 129 * scale); ctx.bezierCurveTo(56 * scale, 97 * scale, 53 * scale, 82 * scale, 52 * scale, 64 * scale); ctx.bezierCurveTo(49 * scale, 33 * scale, 44 * scale, 27 * scale, 41 * scale, 21 * scale); ctx.bezierCurveTo(31 * scale, 40 * scale, 28 * scale, 84 * scale, 27 * scale, 127 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#be9908 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55 * scale, 565 * scale); ctx.bezierCurveTo(56 * scale, 586 * scale, 53 * scale, 591 * scale, 40 * scale, 592 * scale); ctx.bezierCurveTo(28 * scale, 591 * scale, 27 * scale, 583 * scale, 28 * scale, 557 * scale); ctx.bezierCurveTo(27.5 * scale, 346 * scale, 27.5 * scale, 346 * scale, 27 * scale, 135 * scale); ctx.bezierCurveTo(26 * scale, 74 * scale, 36 * scale, 26 * scale, 41 * scale, 15 * scale); ctx.bezierCurveTo(54 * scale, 51 * scale, 54 * scale, 81 * scale, 55 * scale, 128 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 475 * scale); ctx.bezierCurveTo(38 * scale, 482 * scale, 48 * scale, 480 * scale, 54 * scale, 474 * scale); ctx.bezierCurveTo(54 * scale, 509.5 * scale, 54 * scale, 509.5 * scale, 54 * scale, 545 * scale); ctx.bezierCurveTo(46 * scale, 554 * scale, 36 * scale, 552 * scale, 28 * scale, 545 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 8 * scale); //#be9908 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 496 * scale); ctx.bezierCurveTo(39 * scale, 506 * scale, 49 * scale, 503 * scale, 54 * scale, 496 * scale); fill_path(ctx, undefined, color[5], 8 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 521 * scale); ctx.bezierCurveTo(41 * scale, 529 * scale, 49 * scale, 524 * scale, 54 * scale, 520 * scale); fill_path(ctx, undefined, color[5], 8 * scale); //#5f461f return can; } function create_stonespear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 100 * scale; can.height = 648 * scale; ctx.translate(20 * scale, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(50.5 * scale, 349.5 * scale); round_rect(ctx, -13.5 * scale, -249.5 * scale, 27 * scale, 499 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 538 * scale); ctx.bezierCurveTo(49.5 * scale, 538 * scale, 49.5 * scale, 538 * scale, 63 * scale, 538 * scale); ctx.bezierCurveTo(63.5 * scale, 568 * scale, 63.5 * scale, 568 * scale, 64 * scale, 598 * scale); ctx.bezierCurveTo(50 * scale, 598 * scale, 50 * scale, 598 * scale, 36 * scale, 598 * scale); ctx.bezierCurveTo(36 * scale, 568.5 * scale, 36 * scale, 568.5 * scale, 36 * scale, 539 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 554 * scale); ctx.bezierCurveTo(45 * scale, 561 * scale, 56 * scale, 558 * scale, 63 * scale, 554 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 569 * scale); ctx.bezierCurveTo(44 * scale, 576 * scale, 58 * scale, 574 * scale, 68 * scale, 569 * scale); ctx.bezierCurveTo(68 * scale, 584 * scale, 68 * scale, 584 * scale, 68 * scale, 599 * scale); ctx.bezierCurveTo(68 * scale, 608 * scale, 65 * scale, 618 * scale, 49 * scale, 617 * scale); ctx.bezierCurveTo(34 * scale, 617 * scale, 32 * scale, 610 * scale, 32 * scale, 598 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 581 * scale); ctx.bezierCurveTo(48 * scale, 584 * scale, 55 * scale, 583 * scale, 60 * scale, 581 * scale); ctx.bezierCurveTo(60 * scale, 589.5 * scale, 60 * scale, 589.5 * scale, 60 * scale, 598 * scale); ctx.bezierCurveTo(60 * scale, 604 * scale, 59 * scale, 609 * scale, 48 * scale, 608 * scale); ctx.bezierCurveTo(40 * scale, 607 * scale, 40 * scale, 606 * scale, 41 * scale, 581 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 106 * scale); ctx.bezierCurveTo(31 * scale, 124.5 * scale, 31 * scale, 124.5 * scale, 31 * scale, 143 * scale); ctx.bezierCurveTo(31 * scale, 163 * scale, 38 * scale, 169 * scale, 48 * scale, 168 * scale); ctx.bezierCurveTo(57 * scale, 168 * scale, 67 * scale, 165 * scale, 67 * scale, 148 * scale); ctx.bezierCurveTo(67 * scale, 123.5 * scale, 67 * scale, 123.5 * scale, 67 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(49 * scale, 27 * scale); ctx.bezierCurveTo(64 * scale, 62.5 * scale, 64 * scale, 62.5 * scale, 79 * scale, 98 * scale); ctx.bezierCurveTo(74 * scale, 113 * scale, 63 * scale, 121 * scale, 50 * scale, 122 * scale); ctx.bezierCurveTo(35 * scale, 123 * scale, 22 * scale, 109 * scale, 20 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(49 * scale, 43 * scale); ctx.bezierCurveTo(61 * scale, 70 * scale, 61 * scale, 70 * scale, 73 * scale, 97 * scale); ctx.bezierCurveTo(66 * scale, 116 * scale, 43 * scale, 122 * scale, 26 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ed4c9 ctx.translate(-20 * scale, -20 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(50.5 * scale, 349.5 * scale); round_rect(ctx, -13.5 * scale, -249.5 * scale, 27 * scale, 499 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 538 * scale); ctx.bezierCurveTo(49.5 * scale, 538 * scale, 49.5 * scale, 538 * scale, 63 * scale, 538 * scale); ctx.bezierCurveTo(63.5 * scale, 568 * scale, 63.5 * scale, 568 * scale, 64 * scale, 598 * scale); ctx.bezierCurveTo(50 * scale, 598 * scale, 50 * scale, 598 * scale, 36 * scale, 598 * scale); ctx.bezierCurveTo(36 * scale, 568.5 * scale, 36 * scale, 568.5 * scale, 36 * scale, 539 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 554 * scale); ctx.bezierCurveTo(45 * scale, 561 * scale, 56 * scale, 558 * scale, 63 * scale, 554 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 569 * scale); ctx.bezierCurveTo(44 * scale, 576 * scale, 58 * scale, 574 * scale, 68 * scale, 569 * scale); ctx.bezierCurveTo(68 * scale, 584 * scale, 68 * scale, 584 * scale, 68 * scale, 599 * scale); ctx.bezierCurveTo(68 * scale, 608 * scale, 65 * scale, 618 * scale, 49 * scale, 617 * scale); ctx.bezierCurveTo(34 * scale, 617 * scale, 32 * scale, 610 * scale, 32 * scale, 598 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 8 * scale); //#9e79c9 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 581 * scale); ctx.bezierCurveTo(48 * scale, 584 * scale, 55 * scale, 583 * scale, 60 * scale, 581 * scale); ctx.bezierCurveTo(60 * scale, 589.5 * scale, 60 * scale, 589.5 * scale, 60 * scale, 598 * scale); ctx.bezierCurveTo(60 * scale, 604 * scale, 59 * scale, 609 * scale, 48 * scale, 608 * scale); ctx.bezierCurveTo(40 * scale, 607 * scale, 40 * scale, 606 * scale, 41 * scale, 581 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e30c9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 106 * scale); ctx.bezierCurveTo(31 * scale, 124.5 * scale, 31 * scale, 124.5 * scale, 31 * scale, 143 * scale); ctx.bezierCurveTo(31 * scale, 163 * scale, 38 * scale, 169 * scale, 48 * scale, 168 * scale); ctx.bezierCurveTo(57 * scale, 168 * scale, 67 * scale, 165 * scale, 67 * scale, 148 * scale); ctx.bezierCurveTo(67 * scale, 123.5 * scale, 67 * scale, 123.5 * scale, 67 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 8 * scale); //#9e79c9 #5f461f ctx.save(); ctx.translate(-46 * scale, -50 * scale); ctx.scale(2, 2); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51 * scale, 80 * scale); ctx.bezierCurveTo(51 * scale, 89.5 * scale, 51 * scale, 89.5 * scale, 51 * scale, 99 * scale); ctx.bezierCurveTo(49 * scale, 103 * scale, 46 * scale, 105 * scale, 44 * scale, 99 * scale); ctx.bezierCurveTo(44 * scale, 88.5 * scale, 44 * scale, 88.5 * scale, 44 * scale, 78 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.restore(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(49 * scale, 27 * scale); ctx.bezierCurveTo(64 * scale, 62.5 * scale, 64 * scale, 62.5 * scale, 79 * scale, 98 * scale); ctx.bezierCurveTo(74 * scale, 113 * scale, 63 * scale, 121 * scale, 50 * scale, 122 * scale); ctx.bezierCurveTo(35 * scale, 123 * scale, 22 * scale, 109 * scale, 20 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[8], color[9], 8 * scale); //#9e30c9 #bc46ab ctx.scale(2, 2); ctx.translate(-23 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57 * scale, 69 * scale); ctx.bezierCurveTo(50 * scale, 76 * scale, 43 * scale, 75 * scale, 38 * scale, 69 * scale); ctx.bezierCurveTo(43 * scale, 57 * scale, 43 * scale, 57 * scale, 48 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[10]); //#9e793d #5f461f return can; } function create_goldspear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 88 * scale; can.height = 647 * scale; ctx.translate(20 * scale, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(45 * scale, 384.5 * scale); round_rect(ctx, -15 * scale, -216.5 * scale, 30 * scale, 433 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 572 * scale); ctx.bezierCurveTo(44 * scale, 580 * scale, 55 * scale, 576 * scale, 62 * scale, 572 * scale); ctx.bezierCurveTo(65 * scale, 585.5 * scale, 65 * scale, 585.5 * scale, 68 * scale, 599 * scale); ctx.bezierCurveTo(71 * scale, 612 * scale, 68 * scale, 618 * scale, 34 * scale, 616 * scale); ctx.bezierCurveTo(14 * scale, 615 * scale, 19 * scale, 607 * scale, 27 * scale, 573 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 587 * scale); ctx.bezierCurveTo(39 * scale, 590 * scale, 48 * scale, 588 * scale, 54 * scale, 587 * scale); ctx.bezierCurveTo(57 * scale, 604 * scale, 59 * scale, 609 * scale, 46 * scale, 609 * scale); ctx.bezierCurveTo(27 * scale, 609 * scale, 28 * scale, 605 * scale, 33 * scale, 588 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 113 * scale); ctx.bezierCurveTo(27 * scale, 139 * scale, 27 * scale, 139 * scale, 23 * scale, 165 * scale); ctx.bezierCurveTo(18 * scale, 187 * scale, 39 * scale, 195 * scale, 57 * scale, 186 * scale); ctx.bezierCurveTo(68 * scale, 180 * scale, 65 * scale, 171 * scale, 62 * scale, 153 * scale); ctx.bezierCurveTo(58.5 * scale, 131 * scale, 58.5 * scale, 131 * scale, 55 * scale, 109 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 139 * scale); ctx.bezierCurveTo(43 * scale, 139 * scale, 43 * scale, 139 * scale, 47 * scale, 139 * scale); ctx.bezierCurveTo(51 * scale, 158 * scale, 56 * scale, 176 * scale, 44 * scale, 175 * scale); ctx.bezierCurveTo(33 * scale, 177 * scale, 34 * scale, 167 * scale, 39 * scale, 140 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 29 * scale); ctx.bezierCurveTo(57 * scale, 63 * scale, 57 * scale, 63 * scale, 70 * scale, 97 * scale); ctx.bezierCurveTo(60 * scale, 111 * scale, 60 * scale, 111 * scale, 50 * scale, 125 * scale); ctx.bezierCurveTo(45 * scale, 128 * scale, 41 * scale, 128 * scale, 35 * scale, 124 * scale); ctx.bezierCurveTo(26.5 * scale, 110 * scale, 26.5 * scale, 110 * scale, 18 * scale, 96 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 54 * scale); ctx.bezierCurveTo(50 * scale, 72 * scale, 50 * scale, 72 * scale, 56 * scale, 90 * scale); ctx.bezierCurveTo(58 * scale, 94 * scale, 59 * scale, 98 * scale, 53 * scale, 105 * scale); ctx.bezierCurveTo(47 * scale, 113 * scale, 43 * scale, 113 * scale, 36 * scale, 103 * scale); ctx.bezierCurveTo(29 * scale, 96 * scale, 31 * scale, 94 * scale, 35 * scale, 83 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e4eb9 ctx.translate(-20 * scale, -20 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(45 * scale, 384.5 * scale); round_rect(ctx, -15 * scale, -216.5 * scale, 30 * scale, 433 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 572 * scale); ctx.bezierCurveTo(44 * scale, 580 * scale, 55 * scale, 576 * scale, 62 * scale, 572 * scale); ctx.bezierCurveTo(65 * scale, 585.5 * scale, 65 * scale, 585.5 * scale, 68 * scale, 599 * scale); ctx.bezierCurveTo(71 * scale, 612 * scale, 68 * scale, 618 * scale, 34 * scale, 616 * scale); ctx.bezierCurveTo(14 * scale, 615 * scale, 19 * scale, 607 * scale, 27 * scale, 573 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 587 * scale); ctx.bezierCurveTo(39 * scale, 590 * scale, 48 * scale, 588 * scale, 54 * scale, 587 * scale); ctx.bezierCurveTo(57 * scale, 604 * scale, 59 * scale, 609 * scale, 46 * scale, 609 * scale); ctx.bezierCurveTo(27 * scale, 609 * scale, 28 * scale, 605 * scale, 33 * scale, 588 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e79ca ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 113 * scale); ctx.bezierCurveTo(27 * scale, 139 * scale, 27 * scale, 139 * scale, 23 * scale, 165 * scale); ctx.bezierCurveTo(18 * scale, 187 * scale, 39 * scale, 195 * scale, 57 * scale, 186 * scale); ctx.bezierCurveTo(68 * scale, 180 * scale, 65 * scale, 171 * scale, 62 * scale, 153 * scale); ctx.bezierCurveTo(58.5 * scale, 131 * scale, 58.5 * scale, 131 * scale, 55 * scale, 109 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e79ca #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 139 * scale); ctx.bezierCurveTo(43 * scale, 139 * scale, 43 * scale, 139 * scale, 47 * scale, 139 * scale); ctx.bezierCurveTo(51 * scale, 158 * scale, 56 * scale, 176 * scale, 44 * scale, 175 * scale); ctx.bezierCurveTo(33 * scale, 177 * scale, 34 * scale, 167 * scale, 39 * scale, 140 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9ece25 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 29 * scale); ctx.bezierCurveTo(57 * scale, 63 * scale, 57 * scale, 63 * scale, 70 * scale, 97 * scale); ctx.bezierCurveTo(60 * scale, 111 * scale, 60 * scale, 111 * scale, 50 * scale, 125 * scale); ctx.bezierCurveTo(45 * scale, 128 * scale, 41 * scale, 128 * scale, 35 * scale, 124 * scale); ctx.bezierCurveTo(26.5 * scale, 110 * scale, 26.5 * scale, 110 * scale, 18 * scale, 96 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 8 * scale); //#9ece25 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 54 * scale); ctx.bezierCurveTo(50 * scale, 72 * scale, 50 * scale, 72 * scale, 56 * scale, 90 * scale); ctx.bezierCurveTo(58 * scale, 94 * scale, 59 * scale, 98 * scale, 53 * scale, 105 * scale); ctx.bezierCurveTo(47 * scale, 113 * scale, 43 * scale, 113 * scale, 36 * scale, 103 * scale); ctx.bezierCurveTo(29 * scale, 96 * scale, 31 * scale, 94 * scale, 35 * scale, 83 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e4eb9 return can; } function create_diamondspear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 106 * scale; can.height = 681 * scale; ctx.translate(20 * scale, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(52.5 * scale, 395 * scale); ctx.rotate(0); round_rect(ctx, -11.5 * scale, -226 * scale, 23 * scale, 452 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9ee965 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 588 * scale); ctx.bezierCurveTo(47 * scale, 596 * scale, 61 * scale, 594 * scale, 69 * scale, 588 * scale); ctx.bezierCurveTo(79 * scale, 615 * scale, 78 * scale, 632 * scale, 59 * scale, 643 * scale); ctx.bezierCurveTo(41 * scale, 650 * scale, 27 * scale, 632 * scale, 30 * scale, 610 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee965 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 135 * scale); ctx.bezierCurveTo(61.5 * scale, 142 * scale, 61.5 * scale, 142 * scale, 71 * scale, 149 * scale); ctx.bezierCurveTo(69.5 * scale, 166 * scale, 69.5 * scale, 166 * scale, 68 * scale, 183 * scale); ctx.bezierCurveTo(60.5 * scale, 187.5 * scale, 60.5 * scale, 187.5 * scale, 53 * scale, 192 * scale); ctx.bezierCurveTo(45 * scale, 187.5 * scale, 45 * scale, 187.5 * scale, 37 * scale, 183 * scale); ctx.bezierCurveTo(35.5 * scale, 167 * scale, 35.5 * scale, 167 * scale, 34 * scale, 151 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee965 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(64 * scale, 150 * scale); ctx.bezierCurveTo(63 * scale, 164 * scale, 63 * scale, 164 * scale, 62 * scale, 178 * scale); ctx.bezierCurveTo(58 * scale, 181 * scale, 58 * scale, 181 * scale, 54 * scale, 184 * scale); ctx.bezierCurveTo(48.5 * scale, 181.5 * scale, 48.5 * scale, 181.5 * scale, 43 * scale, 179 * scale); ctx.bezierCurveTo(42 * scale, 164.5 * scale, 42 * scale, 164.5 * scale, 41 * scale, 150 * scale); ctx.bezierCurveTo(46 * scale, 152.5 * scale, 46 * scale, 152.5 * scale, 51 * scale, 155 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee965 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 39 * scale); ctx.bezierCurveTo(65.5 * scale, 82 * scale, 65.5 * scale, 82 * scale, 79 * scale, 125 * scale); ctx.bezierCurveTo(66 * scale, 137.5 * scale, 66 * scale, 137.5 * scale, 53 * scale, 150 * scale); ctx.bezierCurveTo(39 * scale, 138 * scale, 39 * scale, 138 * scale, 25 * scale, 126 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee965 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 64 * scale); ctx.bezierCurveTo(60 * scale, 92.5 * scale, 60 * scale, 92.5 * scale, 68 * scale, 121 * scale); ctx.bezierCurveTo(61 * scale, 127.5 * scale, 61 * scale, 127.5 * scale, 54 * scale, 134 * scale); ctx.bezierCurveTo(46.5 * scale, 127.5 * scale, 46.5 * scale, 127.5 * scale, 39 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee965 ctx.translate(-20 * scale, -20 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(52.5 * scale, 395 * scale); ctx.rotate(0); round_rect(ctx, -11.5 * scale, -226 * scale, 23 * scale, 452 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 588 * scale); ctx.bezierCurveTo(47 * scale, 596 * scale, 61 * scale, 594 * scale, 69 * scale, 588 * scale); ctx.bezierCurveTo(79 * scale, 615 * scale, 78 * scale, 632 * scale, 59 * scale, 643 * scale); ctx.bezierCurveTo(41 * scale, 650 * scale, 27 * scale, 632 * scale, 30 * scale, 610 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 135 * scale); ctx.bezierCurveTo(61.5 * scale, 142 * scale, 61.5 * scale, 142 * scale, 71 * scale, 149 * scale); ctx.bezierCurveTo(69.5 * scale, 166 * scale, 69.5 * scale, 166 * scale, 68 * scale, 183 * scale); ctx.bezierCurveTo(60.5 * scale, 187.5 * scale, 60.5 * scale, 187.5 * scale, 53 * scale, 192 * scale); ctx.bezierCurveTo(45 * scale, 187.5 * scale, 45 * scale, 187.5 * scale, 37 * scale, 183 * scale); ctx.bezierCurveTo(35.5 * scale, 167 * scale, 35.5 * scale, 167 * scale, 34 * scale, 151 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(64 * scale, 150 * scale); ctx.bezierCurveTo(63 * scale, 164 * scale, 63 * scale, 164 * scale, 62 * scale, 178 * scale); ctx.bezierCurveTo(58 * scale, 181 * scale, 58 * scale, 181 * scale, 54 * scale, 184 * scale); ctx.bezierCurveTo(48.5 * scale, 181.5 * scale, 48.5 * scale, 181.5 * scale, 43 * scale, 179 * scale); ctx.bezierCurveTo(42 * scale, 164.5 * scale, 42 * scale, 164.5 * scale, 41 * scale, 150 * scale); ctx.bezierCurveTo(46 * scale, 152.5 * scale, 46 * scale, 152.5 * scale, 51 * scale, 155 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9ee9e9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 39 * scale); ctx.bezierCurveTo(65.5 * scale, 82 * scale, 65.5 * scale, 82 * scale, 79 * scale, 125 * scale); ctx.bezierCurveTo(66 * scale, 137.5 * scale, 66 * scale, 137.5 * scale, 53 * scale, 150 * scale); ctx.bezierCurveTo(39 * scale, 138 * scale, 39 * scale, 138 * scale, 25 * scale, 126 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 8 * scale); //#9ee9e9 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 64 * scale); ctx.bezierCurveTo(60 * scale, 92.5 * scale, 60 * scale, 92.5 * scale, 68 * scale, 121 * scale); ctx.bezierCurveTo(61 * scale, 127.5 * scale, 61 * scale, 127.5 * scale, 54 * scale, 134 * scale); ctx.bezierCurveTo(46.5 * scale, 127.5 * scale, 46.5 * scale, 127.5 * scale, 39 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9ee965 return can; } function create_amespear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 108 * scale; can.height = 669 * scale; ctx.translate(20 * scale, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(54 * scale, 389.5 * scale); round_rect(ctx, -15 * scale, -228.5 * scale, 30 * scale, 457 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9ee13d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 579 * scale); ctx.bezierCurveTo(47 * scale, 587 * scale, 61 * scale, 584 * scale, 71 * scale, 579 * scale); ctx.bezierCurveTo(75 * scale, 597.5 * scale, 75 * scale, 597.5 * scale, 79 * scale, 616 * scale); ctx.bezierCurveTo(66.5 * scale, 628 * scale, 66.5 * scale, 628 * scale, 54 * scale, 640 * scale); ctx.bezierCurveTo(41 * scale, 628.5 * scale, 41 * scale, 628.5 * scale, 28 * scale, 617 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee13d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 141 * scale); ctx.bezierCurveTo(40 * scale, 136 * scale, 40 * scale, 136 * scale, 50 * scale, 131 * scale); ctx.bezierCurveTo(63 * scale, 136 * scale, 63 * scale, 136 * scale, 76 * scale, 141 * scale); ctx.bezierCurveTo(72.5 * scale, 161.5 * scale, 72.5 * scale, 161.5 * scale, 69 * scale, 182 * scale); ctx.bezierCurveTo(61.5 * scale, 186.5 * scale, 61.5 * scale, 186.5 * scale, 54 * scale, 191 * scale); ctx.bezierCurveTo(45 * scale, 186.5 * scale, 45 * scale, 186.5 * scale, 36 * scale, 182 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee13d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42 * scale, 152 * scale); ctx.bezierCurveTo(53 * scale, 152 * scale, 53 * scale, 152 * scale, 64 * scale, 152 * scale); ctx.bezierCurveTo(62 * scale, 171 * scale, 62 * scale, 176 * scale, 55 * scale, 177 * scale); ctx.bezierCurveTo(42 * scale, 176 * scale, 45 * scale, 174 * scale, 42 * scale, 152 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee13d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 28 * scale); ctx.bezierCurveTo(67.5 * scale, 55 * scale, 67.5 * scale, 55 * scale, 83 * scale, 82 * scale); ctx.bezierCurveTo(80 * scale, 106.5 * scale, 80 * scale, 106.5 * scale, 77 * scale, 131 * scale); ctx.bezierCurveTo(58 * scale, 147 * scale, 44 * scale, 141 * scale, 29 * scale, 131 * scale); ctx.bezierCurveTo(26.5 * scale, 106.5 * scale, 26.5 * scale, 106.5 * scale, 24 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee13d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53 * scale, 53 * scale); ctx.bezierCurveTo(61 * scale, 70 * scale, 61 * scale, 70 * scale, 69 * scale, 87 * scale); ctx.bezierCurveTo(67 * scale, 106 * scale, 67 * scale, 106 * scale, 65 * scale, 125 * scale); ctx.bezierCurveTo(54 * scale, 130 * scale, 51 * scale, 130 * scale, 41 * scale, 125 * scale); ctx.bezierCurveTo(39 * scale, 105 * scale, 39 * scale, 105 * scale, 37 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9ee13d ctx.translate(-20 * scale, -20 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(54 * scale, 389.5 * scale); ctx.rotate(0); round_rect(ctx, -15 * scale, -228.5 * scale, 30 * scale, 457 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 579 * scale); ctx.bezierCurveTo(47 * scale, 587 * scale, 61 * scale, 584 * scale, 71 * scale, 579 * scale); ctx.bezierCurveTo(75 * scale, 597.5 * scale, 75 * scale, 597.5 * scale, 79 * scale, 616 * scale); ctx.bezierCurveTo(66.5 * scale, 628 * scale, 66.5 * scale, 628 * scale, 54 * scale, 640 * scale); ctx.bezierCurveTo(41 * scale, 628.5 * scale, 41 * scale, 628.5 * scale, 28 * scale, 617 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 141 * scale); ctx.bezierCurveTo(40 * scale, 136 * scale, 40 * scale, 136 * scale, 50 * scale, 131 * scale); ctx.bezierCurveTo(63 * scale, 136 * scale, 63 * scale, 136 * scale, 76 * scale, 141 * scale); ctx.bezierCurveTo(72.5 * scale, 161.5 * scale, 72.5 * scale, 161.5 * scale, 69 * scale, 182 * scale); ctx.bezierCurveTo(61.5 * scale, 186.5 * scale, 61.5 * scale, 186.5 * scale, 54 * scale, 191 * scale); ctx.bezierCurveTo(45 * scale, 186.5 * scale, 45 * scale, 186.5 * scale, 36 * scale, 182 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42 * scale, 152 * scale); ctx.bezierCurveTo(53 * scale, 152 * scale, 53 * scale, 152 * scale, 64 * scale, 152 * scale); ctx.bezierCurveTo(62 * scale, 171 * scale, 62 * scale, 176 * scale, 55 * scale, 177 * scale); ctx.bezierCurveTo(42 * scale, 176 * scale, 45 * scale, 174 * scale, 42 * scale, 152 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e79d6 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 28 * scale); ctx.bezierCurveTo(67.5 * scale, 55 * scale, 67.5 * scale, 55 * scale, 83 * scale, 82 * scale); ctx.bezierCurveTo(80 * scale, 106.5 * scale, 80 * scale, 106.5 * scale, 77 * scale, 131 * scale); ctx.bezierCurveTo(58 * scale, 147 * scale, 44 * scale, 141 * scale, 29 * scale, 131 * scale); ctx.bezierCurveTo(26.5 * scale, 106.5 * scale, 26.5 * scale, 106.5 * scale, 24 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53 * scale, 53 * scale); ctx.bezierCurveTo(61 * scale, 70 * scale, 61 * scale, 70 * scale, 69 * scale, 87 * scale); ctx.bezierCurveTo(67 * scale, 106 * scale, 67 * scale, 106 * scale, 65 * scale, 125 * scale); ctx.bezierCurveTo(54 * scale, 130 * scale, 51 * scale, 130 * scale, 41 * scale, 125 * scale); ctx.bezierCurveTo(39 * scale, 105 * scale, 39 * scale, 105 * scale, 37 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9ee13d return can; } function create_dragon_spear(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 43 * scale; can.height = 209 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(21 * scale, 102.5 * scale); round_rect(ctx, -4 * scale, -76.5 * scale, 8 * scale, 163 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(20 * scale, 10 * scale); ctx.bezierCurveTo(25 * scale, 25.5 * scale, 25 * scale, 25.5 * scale, 30 * scale, 41 * scale); ctx.bezierCurveTo(25.5 * scale, 38.5 * scale, 25.5 * scale, 38.5 * scale, 21 * scale, 36 * scale); ctx.bezierCurveTo(16 * scale, 38.5 * scale, 16 * scale, 38.5 * scale, 11 * scale, 41 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21 * scale, 1 * scale); ctx.bezierCurveTo(28 * scale, 18 * scale, 28 * scale, 18 * scale, 35 * scale, 35 * scale); ctx.bezierCurveTo(28.5 * scale, 32 * scale, 28.5 * scale, 32 * scale, 22 * scale, 29 * scale); ctx.bezierCurveTo(14.5 * scale, 32.5 * scale, 14.5 * scale, 32.5 * scale, 7 * scale, 36 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 146 * scale); ctx.bezierCurveTo(21 * scale, 146 * scale, 21 * scale, 146 * scale, 28 * scale, 146 * scale); ctx.bezierCurveTo(27.5 * scale, 147.5 * scale, 27.5 * scale, 147.5 * scale, 27 * scale, 149 * scale); ctx.bezierCurveTo(27 * scale, 160 * scale, 27 * scale, 160 * scale, 27 * scale, 171 * scale); ctx.bezierCurveTo(27.5 * scale, 171.5 * scale, 27.5 * scale, 171.5 * scale, 28 * scale, 172 * scale); ctx.bezierCurveTo(21 * scale, 172 * scale, 21 * scale, 172 * scale, 14 * scale, 172 * scale); ctx.bezierCurveTo(14 * scale, 171.5 * scale, 14 * scale, 171.5 * scale, 14 * scale, 171 * scale); ctx.bezierCurveTo(14.5 * scale, 171.5 * scale, 14.5 * scale, 171.5 * scale, 15 * scale, 172 * scale); ctx.bezierCurveTo(15 * scale, 160.5 * scale, 15 * scale, 160.5 * scale, 15 * scale, 149 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21 * scale, 6 * scale); ctx.bezierCurveTo(26.5 * scale, 18.5 * scale, 26.5 * scale, 18.5 * scale, 32 * scale, 31 * scale); ctx.bezierCurveTo(27 * scale, 29 * scale, 27 * scale, 29 * scale, 22 * scale, 27 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#8c475a ctx.translate(0, -20 * scale); ctx.globalAlpha = 1; ctx.translate(0, 10 * scale); ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(21 * scale, 102.5 * scale); round_rect(ctx, -4 * scale, -76.5 * scale, 8 * scale, 163 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(20 * scale, 10 * scale); ctx.bezierCurveTo(25 * scale, 25.5 * scale, 25 * scale, 25.5 * scale, 30 * scale, 41 * scale); ctx.bezierCurveTo(25.5 * scale, 38.5 * scale, 25.5 * scale, 38.5 * scale, 21 * scale, 36 * scale); ctx.bezierCurveTo(16 * scale, 38.5 * scale, 16 * scale, 38.5 * scale, 11 * scale, 41 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21 * scale, 1 * scale); ctx.bezierCurveTo(28 * scale, 18 * scale, 28 * scale, 18 * scale, 35 * scale, 35 * scale); ctx.bezierCurveTo(28.5 * scale, 32 * scale, 28.5 * scale, 32 * scale, 22 * scale, 29 * scale); ctx.bezierCurveTo(14.5 * scale, 32.5 * scale, 14.5 * scale, 32.5 * scale, 7 * scale, 36 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#9e793d #5f461f ctx.translate(0, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 146 * scale); ctx.bezierCurveTo(21 * scale, 146 * scale, 21 * scale, 146 * scale, 28 * scale, 146 * scale); ctx.bezierCurveTo(27.5 * scale, 147.5 * scale, 27.5 * scale, 147.5 * scale, 27 * scale, 149 * scale); ctx.bezierCurveTo(27 * scale, 160 * scale, 27 * scale, 160 * scale, 27 * scale, 171 * scale); ctx.bezierCurveTo(27.5 * scale, 171.5 * scale, 27.5 * scale, 171.5 * scale, 28 * scale, 172 * scale); ctx.bezierCurveTo(21 * scale, 172 * scale, 21 * scale, 172 * scale, 14 * scale, 172 * scale); ctx.bezierCurveTo(14 * scale, 171.5 * scale, 14 * scale, 171.5 * scale, 14 * scale, 171 * scale); ctx.bezierCurveTo(14.5 * scale, 171.5 * scale, 14.5 * scale, 171.5 * scale, 15 * scale, 172 * scale); ctx.bezierCurveTo(15 * scale, 160.5 * scale, 15 * scale, 160.5 * scale, 15 * scale, 149 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21 * scale, 6 * scale); ctx.bezierCurveTo(26.5 * scale, 18.5 * scale, 26.5 * scale, 18.5 * scale, 32 * scale, 31 * scale); ctx.bezierCurveTo(27 * scale, 29 * scale, 27 * scale, 29 * scale, 22 * scale, 27 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#8c475a return can; } function create_plus_chest(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 200 * scale; can.height = 200 * scale; ctx.save(); ctx.translate(112 * scale, 158 * scale); round_rect(ctx, -86.5 * scale, -86 * scale, 150 * scale, 35 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#000000 #000000 ctx.save(); ctx.translate(170 * scale, 100 * scale); round_rect(ctx, -86.5 * scale, -86 * scale, 35 * scale, 150 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_chest_slot(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 118 * scale; can.height = 129 * scale; ctx.save(); ctx.translate(90 * scale, 90 * scale); round_rect(ctx, -86.5 * scale, -86 * scale, 110 * scale, 110 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 4); //#000000 #000000 ctx.save(); round_rect(ctx, 30 * scale, 115 * scale, 60 * scale, 5 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 4); //#000000 #000000 ctx.save(); round_rect(ctx, 50 * scale, 117 * scale, 20 * scale, 10 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[2]); //#000000 #000000 return can; } function create_chest(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 165 * scale; can.height = 123 * scale; ctx.save(); ctx.translate(81 * scale, 65 * scale); round_rect(ctx, -78 * scale, -54.5 * scale, 156 * scale, 109 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#000000 #000000 ctx.save(); ctx.translate(81 * scale, 58 * scale); round_rect(ctx, -78 * scale, -54.5 * scale, 156 * scale, 109 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4); //#000000 #000000 ctx.save(); ctx.translate(81 * scale, 58 * scale); round_rect(ctx, -69 * scale, -47 * scale, 138 * scale, 93 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 4); //#6c0000 #000000 ctx.save(); ctx.translate(79 * scale, 54 * scale); round_rect(ctx, -34 * scale, -40 * scale, 68 * scale, 88 * scale, 13 * scale); ctx.restore(); fill_path(ctx, undefined, color[5], 4); //#d24100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 13 * scale); ctx.bezierCurveTo(43.5 * scale, 55 * scale, 43.5 * scale, 55 * scale, 43 * scale, 101 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4); //#d24100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 13 * scale); ctx.bezierCurveTo(115 * scale, 56 * scale, 115 * scale, 56 * scale, 115 * scale, 101 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 4); //#d24100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 6 * scale); ctx.bezierCurveTo(35 * scale, 56 * scale, 36 * scale, 109 * scale, 35 * scale, 110 * scale); ctx.closePath(); fill_path(ctx, undefined, color[7], 4); //#d24100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123 * scale, 6 * scale); ctx.bezierCurveTo(123 * scale, 56 * scale, 123 * scale, 56 * scale, 123 * scale, 110 * scale); ctx.closePath(); fill_path(ctx, undefined, color[7], 4); //#d24100 ctx.save(); ctx.translate(79 * scale, 113 * scale); round_rect(ctx, -18 * scale, -2 * scale, 36 * scale, 4 * scale, 20 * scale); ctx.restore(); fill_path(ctx, undefined, color[8], 4); //#d2c700 ctx.save(); ctx.translate(75 * scale, 118 * scale); round_rect(ctx, -6 * scale, -2.5 * scale, 20 * scale, 5 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[8]); //#d2c700 return can; } function create_fur(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 92 * scale; can.height = 108 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 10 * scale); ctx.bezierCurveTo(37 * scale, 2 * scale, 49 * scale, 0 * scale, 61 * scale, 15 * scale); ctx.bezierCurveTo(81 * scale, 31 * scale, 78 * scale, 25 * scale, 79 * scale, 37 * scale); ctx.bezierCurveTo(76 * scale, 44 * scale, 81 * scale, 56 * scale, 85 * scale, 63 * scale); ctx.bezierCurveTo(91 * scale, 71 * scale, 90 * scale, 78 * scale, 83 * scale, 84 * scale); ctx.bezierCurveTo(60 * scale, 98 * scale, 67 * scale, 95 * scale, 57 * scale, 102 * scale); ctx.bezierCurveTo(47 * scale, 106 * scale, 43 * scale, 106 * scale, 31 * scale, 98 * scale); ctx.bezierCurveTo(22 * scale, 91 * scale, 17 * scale, 89 * scale, 7 * scale, 84 * scale); ctx.bezierCurveTo(1 * scale, 77 * scale, 4 * scale, 73 * scale, 7 * scale, 60 * scale); ctx.bezierCurveTo(11 * scale, 50 * scale, 5 * scale, 32 * scale, 15 * scale, 27 * scale); ctx.bezierCurveTo(26 * scale, 18 * scale, 26 * scale, 24 * scale, 31 * scale, 10 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4); //#000000 #000000 return can; } function create_verified(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 60 * scale; can.height = 60 * scale; ctx.translate(-25 * scale, -25 * scale); ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 50 * scale); ctx.bezierCurveTo(32.5 * scale, 54.5 * scale, 32.5 * scale, 54.5 * scale, 41 * scale, 59 * scale); ctx.bezierCurveTo(57 * scale, 47 * scale, 57 * scale, 47 * scale, 73 * scale, 35 * scale); ctx.bezierCurveTo(57 * scale, 53 * scale, 57 * scale, 53 * scale, 41 * scale, 71 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 50 * scale); ctx.bezierCurveTo(32.5 * scale, 54.5 * scale, 32.5 * scale, 54.5 * scale, 41 * scale, 59 * scale); ctx.bezierCurveTo(57 * scale, 47 * scale, 57 * scale, 47 * scale, 73 * scale, 35 * scale); ctx.bezierCurveTo(57 * scale, 53 * scale, 57 * scale, 53 * scale, 41 * scale, 71 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f return can; } function create_earmuff(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 151 * scale; can.height = 80 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 54 * scale); ctx.bezierCurveTo(136 * scale, 18 * scale, 129 * scale, 18 * scale, 114 * scale, 13 * scale); ctx.bezierCurveTo(51 * scale, 0 * scale, 36 * scale, 16 * scale, 34 * scale, 16 * scale); ctx.bezierCurveTo(8 * scale, 28 * scale, 22 * scale, 56 * scale, 21 * scale, 57 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4); //#e4e4e4 #aac7e0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 40 * scale); ctx.bezierCurveTo(132 * scale, 35 * scale, 132 * scale, 30 * scale, 132 * scale, 29 * scale); ctx.bezierCurveTo(145 * scale, 38 * scale, 144 * scale, 43 * scale, 137 * scale, 54 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4); //#e4e4e4 #aac7e0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(20 * scale, 33 * scale); ctx.bezierCurveTo(24 * scale, 44 * scale, 215 * scale, 39 * scale, 23 * scale, 44 * scale); ctx.bezierCurveTo(19 * scale, 49 * scale, 19 * scale, 49 * scale, 15 * scale, 54 * scale); ctx.bezierCurveTo(4 * scale, 43 * scale, 10 * scale, 35 * scale, 20 * scale, 32 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4); //#e4e4e4 #aac7e0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(18 * scale, 52 * scale); ctx.bezierCurveTo(24 * scale, 31 * scale, 34 * scale, 25 * scale, 75 * scale, 23 * scale); ctx.bezierCurveTo(130 * scale, 24 * scale, 129 * scale, 32 * scale, 134 * scale, 51 * scale); ctx.bezierCurveTo(138 * scale, 70 * scale, 126 * scale, 72 * scale, 90 * scale, 73 * scale); ctx.bezierCurveTo(18 * scale, 72 * scale, 15 * scale, 68 * scale, 18 * scale, 54 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4); //#000000 #000000 return can; } function create_cap_scarf(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 138 * scale; can.height = 133 * scale; ctx.globalAlpha = draw_shadow ? 0.3 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26 * scale, 79.640625 * scale); ctx.bezierCurveTo(13 * scale, 84.640625 * scale, 9 * scale, 86.640625 * scale, 7 * scale, 78.640625 * scale); ctx.bezierCurveTo(6 * scale, 69.640625 * scale, 15 * scale, 67.640625 * scale, 31 * scale, 62.640625 * scale); ctx.bezierCurveTo(63 * scale, 55.640625 * scale, 85 * scale, 57.640625 * scale, 104 * scale, 63.640625 * scale); ctx.bezierCurveTo(131 * scale, 69.640625 * scale, 132 * scale, 71.640625 * scale, 131 * scale, 78.640625 * scale); ctx.bezierCurveTo(131 * scale, 91.640625 * scale, 112 * scale, 80.640625 * scale, 91 * scale, 75.640625 * scale); ctx.bezierCurveTo(51 * scale, 70.640625 * scale, 45 * scale, 74.640625 * scale, 28 * scale, 78.640625 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#6eea53 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 82.640625 * scale); ctx.bezierCurveTo(40 * scale, 107.640625 * scale, 53 * scale, 104.640625 * scale, 67 * scale, 106.640625 * scale); ctx.bezierCurveTo(101 * scale, 103.640625 * scale, 117 * scale, 93.640625 * scale, 127 * scale, 84.640625 * scale); ctx.bezierCurveTo(135 * scale, 95.640625 * scale, 131 * scale, 107.640625 * scale, 110 * scale, 118.640625 * scale); ctx.bezierCurveTo(78 * scale, 129.640625 * scale, 67 * scale, 130.640625 * scale, 27 * scale, 119.640625 * scale); ctx.bezierCurveTo(0 * scale, 105.640625 * scale, 8 * scale, 83.640625 * scale, 10 * scale, 84.640625 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#3bd770 #6eea53 ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 73.640625 * scale); ctx.bezierCurveTo(7 * scale, 23.640625 * scale, 33 * scale, 19.640625 * scale, 71 * scale, 17.640625 * scale); ctx.bezierCurveTo(129 * scale, 19.640625 * scale, 130 * scale, 45.640625 * scale, 130 * scale, 76.640625 * scale); ctx.bezierCurveTo(90 * scale, 63.640625 * scale, 85 * scale, 63.640625 * scale, 73 * scale, 63.640625 * scale); ctx.bezierCurveTo(38 * scale, 63.640625 * scale, 33 * scale, 66.640625 * scale, 8 * scale, 73.640625 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72 * scale, 28.640625 * scale); ctx.bezierCurveTo(51 * scale, 25.640625 * scale, 56 * scale, 7.640625 * scale, 70 * scale, 5.640625 * scale); ctx.bezierCurveTo(94 * scale, 7.640625 * scale, 87 * scale, 29.640625 * scale, 72 * scale, 28.640625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#3bd770 #6eea53 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51 * scale, 26.640625 * scale); ctx.bezierCurveTo(42 * scale, 29.640625 * scale, 43 * scale, 31.640625 * scale, 42 * scale, 37.640625 * scale); fill_path(ctx, undefined, color[2], 4 * scale); //#6eea53 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(90 * scale, 26.640625 * scale); ctx.bezierCurveTo(100 * scale, 28.640625 * scale, 98 * scale, 34.640625 * scale, 99 * scale, 38.640625 * scale); fill_path(ctx, undefined, color[2], 4 * scale); //#6eea53 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26 * scale, 79.640625 * scale); ctx.bezierCurveTo(13 * scale, 84.640625 * scale, 9 * scale, 86.640625 * scale, 7 * scale, 78.640625 * scale); ctx.bezierCurveTo(6 * scale, 69.640625 * scale, 15 * scale, 67.640625 * scale, 31 * scale, 62.640625 * scale); ctx.bezierCurveTo(63 * scale, 55.640625 * scale, 85 * scale, 57.640625 * scale, 104 * scale, 63.640625 * scale); ctx.bezierCurveTo(131 * scale, 69.640625 * scale, 132 * scale, 71.640625 * scale, 131 * scale, 78.640625 * scale); ctx.bezierCurveTo(131 * scale, 91.640625 * scale, 112 * scale, 80.640625 * scale, 91 * scale, 75.640625 * scale); ctx.bezierCurveTo(51 * scale, 70.640625 * scale, 45 * scale, 74.640625 * scale, 28 * scale, 78.640625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#6eea53 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 82.640625 * scale); ctx.bezierCurveTo(40 * scale, 107.640625 * scale, 53 * scale, 104.640625 * scale, 67 * scale, 106.640625 * scale); ctx.bezierCurveTo(101 * scale, 103.640625 * scale, 117 * scale, 93.640625 * scale, 127 * scale, 84.640625 * scale); ctx.bezierCurveTo(135 * scale, 95.640625 * scale, 131 * scale, 107.640625 * scale, 110 * scale, 118.640625 * scale); ctx.bezierCurveTo(78 * scale, 129.640625 * scale, 67 * scale, 130.640625 * scale, 27 * scale, 119.640625 * scale); ctx.bezierCurveTo(0 * scale, 105.640625 * scale, 8 * scale, 83.640625 * scale, 10 * scale, 84.640625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#3bd770 #6eea53 return can; } function create_spike(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 170; var h = scale * 172; var x = w / 2; var y = h / 2; can.width = w; can.height = h; ctx.translate(x, y + 7 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 0; circle(ctx, 0, 0, 60 * scale); fill_path(ctx, color[0]); ctx.globalAlpha = 1; /* Draw spike */ ctx.translate(0, -7 * scale); ctx.save(); for (var i = 0; i < 10; i++) { ctx.rotate(window.Math.PI / 5); ctx.save(); ctx.translate(65 * scale, 0); round_regular_polygon(ctx, 3, 20 * scale, 4 * scale); fill_path(ctx, color[1], color[2], 4 * scale); ctx.restore(); } ctx.restore(); /* Draw cicle */ circle(ctx, 0, 0, 60 * scale, 0); fill_path(ctx, color[3], color[4], 4 * scale); circle(ctx, 0, 0, 40 * scale); fill_path(ctx, color[5]); circle(ctx, 0, 0, 25 * scale); fill_path(ctx, color[6], color[7], 8 * scale); return can; } function create_spiketimer(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 170; var h = scale * 172; var x = w / 2; var y = h / 2; can.width = w; can.height = h; /* Draw spike */ ctx.translate(x, y); ctx.save(); for (var i = 0; i < 10; i++) { ctx.rotate(window.Math.PI / 5); ctx.save(); ctx.translate(65 * scale, 0); round_regular_polygon(ctx, 3, 18 * scale, 4 * scale); fill_path(ctx, color[0]); ctx.restore(); } ctx.restore(); /* Draw cicle */ circle(ctx, 0, 0, 40 * scale, 0); fill_path(ctx, undefined, color[0], 6 * scale); circle(ctx, 0, 0, 20 * scale, 0); fill_path(ctx, color[0]); return can; } function create_spike_stone(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 170 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.save(); ctx.translate(85 * scale, 88 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#6a7570 #939995 ctx.globalAlpha = 1; /* Draw spike */ ctx.translate(85 * scale, 80 * scale); for (var i = 0; i < 10; i++) { ctx.rotate(window.Math.PI / 5); ctx.save(); ctx.translate(65 * scale, 0); round_regular_polygon(ctx, 3, 21 * scale, 4 * scale); fill_path(ctx, color[1], color[2], 4 * scale); ctx.restore(); } ctx.save(); ctx.translate(0 * scale, 0 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#6a7570 #939995 ctx.rotate(0.64); round_regular_polygon(ctx, 7, 40 * scale, 10 * scale); fill_path(ctx, color[5], color[6], 4 * scale); //#9baaa3 #adbcb5 ctx.rotate(0.12); round_regular_polygon(ctx, 7, 23 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[7]); //#8a938e return can; } function create_spike_gold(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 170 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 3 * scale); ctx.save(); ctx.translate(85 * scale, 95 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#6a7570 #939995 ctx.globalAlpha = 1; /* Draw spike */ ctx.translate(85 * scale, 82 * scale); for (var i = 0; i < 10; i++) { ctx.rotate(window.Math.PI / 5); ctx.save(); ctx.translate(65 * scale, 0); round_regular_polygon(ctx, 3, 21 * scale, 4 * scale); fill_path(ctx, color[1], color[2], 4 * scale); ctx.restore(); } ctx.save(); ctx.translate(0 * scale, 0 * scale); ctx.rotate(1); round_regular_polygon(ctx, 8, 60 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#877d36 #a08f47 ctx.rotate(0.56); round_regular_polygon(ctx, 8, 40 * scale, 10 * scale); fill_path(ctx, color[5], color[6], 4 * scale); //#a7983c #b29e4d ctx.rotate(0.28); round_regular_polygon(ctx, 8, 28 * scale, 8 * scale); fill_path(ctx, color[7]); //#c1b06b ctx.restore(); return can; } function create_spike_diamond(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 170 * scale; ctx.translate(0, 3 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(85 * scale, 95 * scale); ctx.rotate(1.4); round_regular_polygon(ctx, 7, 60 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#6a7570 #939995 ctx.globalAlpha = 1; /* Draw spike */ ctx.translate(85 * scale, 82 * scale); for (var i = 0; i < 10; i++) { ctx.rotate(window.Math.PI / 5); ctx.save(); ctx.translate(65 * scale, 0); round_regular_polygon(ctx, 3, 21 * scale, 4 * scale); fill_path(ctx, color[1], color[2], 4 * scale); ctx.restore(); } ctx.save(); ctx.translate(0 * scale, 0 * scale); ctx.rotate(0.2); round_regular_polygon(ctx, 9, 60 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#5cc5ce #89d1d4 ctx.rotate(-0.32); round_regular_polygon(ctx, 9, 38 * scale, 10 * scale); fill_path(ctx, color[5], color[6], 4 * scale); //#86d0d1 #95d5d8 ctx.rotate(0.68); round_regular_polygon(ctx, 9, 20 * scale, 8 * scale); fill_path(ctx, color[7], color[8], 6 * scale); //#e0f2f6 #b3e0e3 ctx.restore(); return can; } function create_hammer(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 69 * scale; can.height = 120 * scale; /*Draw Shadow*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.save(); ctx.translate(30 * scale, 84 * scale); round_rect(ctx, -6 * scale, -66.5 * scale, 8 * scale, 100 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#58bea3 #86fada ctx.save(); ctx.translate(30 * scale, 45 * scale); round_rect(ctx, -9.5 * scale, -6.5 * scale, 16 * scale, 13 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#58bea3 #86fada ctx.save(); ctx.translate(30 * scale, 17 * scale); round_rect(ctx, -7.5 * scale, -5.5 * scale, 12 * scale, 11 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#58bea3 #86fada ctx.save(); ctx.translate(30 * scale, 31 * scale); round_rect(ctx, -26 * scale, -14.5 * scale, 52 * scale, 29 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#58bea3 #86fada ctx.globalAlpha = 1; ctx.save(); ctx.translate(36 * scale, 79.140625 * scale); round_rect(ctx, -6 * scale, -66.5 * scale, 8 * scale, 100 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 3 * scale); //#58bea3 #86fada ctx.save(); ctx.translate(35 * scale, 40.140625 * scale); round_rect(ctx, -9.5 * scale, -6.5 * scale, 16 * scale, 13 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 3 * scale); //#58bea3 #86fada ctx.save(); ctx.translate(35 * scale, 12.140625 * scale); round_rect(ctx, -7.5 * scale, -5.5 * scale, 12 * scale, 11 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 3 * scale); //#58bea3 #86fada ctx.save(); ctx.translate(34.5 * scale, 26.140625 * scale); round_rect(ctx, -26 * scale, -14.5 * scale, 52 * scale, 29 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 3 * scale); //#58bea3 #86fada return can; } function create_clock_day(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 321 * scale; can.height = 345 * scale; /*clock*/ ctx.translate(0, 5 * scale); ctx.translate(0, 20 * scale); circle(ctx, 160.5 * scale, 159.5 * scale, 156.39595138242822 * scale); fill_path(ctx, "#322413", "#322413", 4 * scale); //#9e793d #5f461f ctx.translate(0, -20 * scale); circle(ctx, 160.5 * scale, 159.5 * scale, 156.39595138242822 * scale); fill_path(ctx, "#392C16", "#5E3E1A", 10 * scale); //#9e793d #5f461f /*day*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.999969482421875 * scale, 163.07290649414062 * scale); ctx.bezierCurveTo(22.999969482421875 * scale, 67.07290649414062 * scale, 106 * scale, 20.072906494140625 * scale, 162 * scale, 23.072906494140625 * scale); ctx.bezierCurveTo(269.9999694824219 * scale, 31.072906494140625 * scale, 292.9999694824219 * scale, 120.07290649414062 * scale, 294.9999694824219 * scale, 161.07290649414062 * scale); ctx.bezierCurveTo(165.49996948242188 * scale, 162.07290649414062 * scale, 165.49996948242188 * scale, 162.07290649414062 * scale, 35.999969482421875 * scale, 163.07290649414062 * scale); ctx.closePath(); fill_path(ctx, "#12432D"); //#9e793d #5f461f /*night*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32.999969482421875 * scale, 165.07290649414062 * scale); ctx.bezierCurveTo(16.999969482421875 * scale, 221.07290649414062 * scale, 85 * scale, 289.0729064941406 * scale, 156 * scale, 294.0729064941406 * scale); ctx.bezierCurveTo(263.9999694824219 * scale, 293.0729064941406 * scale, 295.9999694824219 * scale, 199.07290649414062 * scale, 294.9999694824219 * scale, 159.07290649414062 * scale); ctx.closePath(); fill_path(ctx, "#3A2A0D"); //#9e793d #5f461f /*border circle*/ circle(ctx, 161 * scale, 158.07290649414062 * scale, 133.4053971921676 * scale); fill_path(ctx, undefined, "#5E3E1A", 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.999969482421875 * scale, 161.62844848632812 * scale); ctx.bezierCurveTo(162.49996948242188 * scale, 161.62844848632812 * scale, 162.49996948242188 * scale, 161.62844848632812 * scale, 292.9999694824219 * scale, 161.62844848632812 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3E1A", 12 * scale); //#9e793d #5f461f /*sun line*/ ctx.translate(0, 8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 158.29513549804688 * scale); ctx.bezierCurveTo(86 * scale, 158.29513549804688 * scale, 86 * scale, 158.29513549804688 * scale, 106 * scale, 158.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57.999969482421875 * scale, 117.29513549804688 * scale); ctx.bezierCurveTo(85 * scale, 128.29513549804688 * scale, 85 * scale, 128.29513549804688 * scale, 113 * scale, 139.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 90.29513549804688 * scale); ctx.bezierCurveTo(112 * scale, 105.79513549804688 * scale, 112 * scale, 105.79513549804688 * scale, 129 * scale, 121.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116 * scale, 52.850677490234375 * scale); ctx.bezierCurveTo(130 * scale, 83.85067749023438 * scale, 130 * scale, 83.85067749023438 * scale, 144 * scale, 114.85067749023438 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 61.295135498046875 * scale); ctx.bezierCurveTo(160.49996948242188 * scale, 92.29513549804688 * scale, 160.49996948242188 * scale, 92.29513549804688 * scale, 160 * scale, 123.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203 * scale, 51.295135498046875 * scale); ctx.bezierCurveTo(190.49996948242188 * scale, 83.29513549804688 * scale, 190.49996948242188 * scale, 83.29513549804688 * scale, 176 * scale, 115.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 89.29513549804688 * scale); ctx.bezierCurveTo(210.49996948242188 * scale, 104.79513549804688 * scale, 210.49996948242188 * scale, 104.79513549804688 * scale, 194 * scale, 120.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(266.9999694824219 * scale, 112.29513549804688 * scale); ctx.bezierCurveTo(233.49996948242188 * scale, 127.29513549804688 * scale, 233.49996948242188 * scale, 127.29513549804688 * scale, 199 * scale, 142.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(256.9999694824219 * scale, 155.29513549804688 * scale); ctx.bezierCurveTo(238.49996948242188 * scale, 156.29513549804688 * scale, 238.49996948242188 * scale, 156.29513549804688 * scale, 219 * scale, 157.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#c7a726", 12 * scale); //#9e793d #5f461f ctx.translate(0, -8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 158.29513549804688 * scale); ctx.bezierCurveTo(86 * scale, 158.29513549804688 * scale, 86 * scale, 158.29513549804688 * scale, 106 * scale, 158.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57.999969482421875 * scale, 117.29513549804688 * scale); ctx.bezierCurveTo(85 * scale, 128.29513549804688 * scale, 85 * scale, 128.29513549804688 * scale, 113 * scale, 139.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 90.29513549804688 * scale); ctx.bezierCurveTo(112 * scale, 105.79513549804688 * scale, 112 * scale, 105.79513549804688 * scale, 129 * scale, 121.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116 * scale, 52.850677490234375 * scale); ctx.bezierCurveTo(130 * scale, 83.85067749023438 * scale, 130 * scale, 83.85067749023438 * scale, 144 * scale, 114.85067749023438 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 61.295135498046875 * scale); ctx.bezierCurveTo(160.49996948242188 * scale, 92.29513549804688 * scale, 160.49996948242188 * scale, 92.29513549804688 * scale, 160 * scale, 123.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203 * scale, 51.295135498046875 * scale); ctx.bezierCurveTo(190.49996948242188 * scale, 83.29513549804688 * scale, 190.49996948242188 * scale, 83.29513549804688 * scale, 176 * scale, 115.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 89.29513549804688 * scale); ctx.bezierCurveTo(210.49996948242188 * scale, 104.79513549804688 * scale, 210.49996948242188 * scale, 104.79513549804688 * scale, 194 * scale, 120.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(266.9999694824219 * scale, 112.29513549804688 * scale); ctx.bezierCurveTo(233.49996948242188 * scale, 127.29513549804688 * scale, 233.49996948242188 * scale, 127.29513549804688 * scale, 199 * scale, 142.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(256.9999694824219 * scale, 155.29513549804688 * scale); ctx.bezierCurveTo(238.49996948242188 * scale, 156.29513549804688 * scale, 238.49996948242188 * scale, 156.29513549804688 * scale, 219 * scale, 157.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#EDCE4F", 12 * scale); //#9e793d #5f461f /*moon*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(94.00003051757812 * scale, 164.40341186523438 * scale); ctx.bezierCurveTo(162.50003051757812 * scale, 164.40341186523438 * scale, 230.00003051757812 * scale, 165.40341186523438 * scale, 231.00003051757812 * scale, 164.40341186523438 * scale); ctx.bezierCurveTo(214.00003051757812 * scale, 267.4034118652344 * scale, 92.00003051757812 * scale, 243.40341186523438 * scale, 93.00003051757812 * scale, 165.40341186523438 * scale); ctx.closePath(); fill_path(ctx, "#704618", "#5D3D1A", 8 * scale); //#9e793d #5f461f /*sun*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96 * scale, 166 * scale); ctx.bezierCurveTo(88 * scale, 117 * scale, 129 * scale, 92 * scale, 161 * scale, 91 * scale); ctx.bezierCurveTo(201 * scale, 90 * scale, 223 * scale, 121 * scale, 230 * scale, 161 * scale); ctx.closePath(); fill_path(ctx, "#ECBE35", "#EDCE4F", 8 * scale); //#9e793d #5f461f /*circle before arrow*/ circle(ctx, 160.00003051757812 * scale, 166.49432373046875 * scale, 28.30194339616981 * scale); fill_path(ctx, "#392C16", "#5E3E1A", 10 * scale); //#9e793d #5f461f return can; } function create_clock_night(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 321 * scale; can.height = 345 * scale; /*clock*/ ctx.translate(0, 5 * scale); ctx.translate(0, 20 * scale); circle(ctx, 160.5 * scale, 159.5 * scale, 156.39595138242822 * scale); fill_path(ctx, "#322413", "#322413", 4 * scale); //#9e793d #5f461f ctx.translate(0, -20 * scale); circle(ctx, 160.5 * scale, 159.5 * scale, 156.39595138242822 * scale); fill_path(ctx, "#392C16", "#5E3E1A", 10 * scale); //#9e793d #5f461f /*day*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.999969482421875 * scale, 163.07290649414062 * scale); ctx.bezierCurveTo(22.999969482421875 * scale, 67.07290649414062 * scale, 106 * scale, 20.072906494140625 * scale, 162 * scale, 23.072906494140625 * scale); ctx.bezierCurveTo(269.9999694824219 * scale, 31.072906494140625 * scale, 292.9999694824219 * scale, 120.07290649414062 * scale, 294.9999694824219 * scale, 161.07290649414062 * scale); ctx.bezierCurveTo(165.49996948242188 * scale, 162.07290649414062 * scale, 165.49996948242188 * scale, 162.07290649414062 * scale, 35.999969482421875 * scale, 163.07290649414062 * scale); ctx.closePath(); fill_path(ctx, "#3A2A0D"); //#9e793d #5f461f /*night*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32.999969482421875 * scale, 165.07290649414062 * scale); ctx.bezierCurveTo(16.999969482421875 * scale, 221.07290649414062 * scale, 85 * scale, 289.0729064941406 * scale, 156 * scale, 294.0729064941406 * scale); ctx.bezierCurveTo(263.9999694824219 * scale, 293.0729064941406 * scale, 295.9999694824219 * scale, 199.07290649414062 * scale, 294.9999694824219 * scale, 159.07290649414062 * scale); ctx.closePath(); fill_path(ctx, "#071A1B"); //#9e793d #5f461f /*border circle*/ circle(ctx, 161 * scale, 158.07290649414062 * scale, 133.4053971921676 * scale); fill_path(ctx, undefined, "#5E3E1A", 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.999969482421875 * scale, 161.62844848632812 * scale); ctx.bezierCurveTo(162.49996948242188 * scale, 161.62844848632812 * scale, 162.49996948242188 * scale, 161.62844848632812 * scale, 292.9999694824219 * scale, 161.62844848632812 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3E1A", 12 * scale); //#9e793d #5f461f /*sun line*/ ctx.translate(0, 8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 158.29513549804688 * scale); ctx.bezierCurveTo(86 * scale, 158.29513549804688 * scale, 86 * scale, 158.29513549804688 * scale, 106 * scale, 158.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57.999969482421875 * scale, 117.29513549804688 * scale); ctx.bezierCurveTo(85 * scale, 128.29513549804688 * scale, 85 * scale, 128.29513549804688 * scale, 113 * scale, 139.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 90.29513549804688 * scale); ctx.bezierCurveTo(112 * scale, 105.79513549804688 * scale, 112 * scale, 105.79513549804688 * scale, 129 * scale, 121.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116 * scale, 52.850677490234375 * scale); ctx.bezierCurveTo(130 * scale, 83.85067749023438 * scale, 130 * scale, 83.85067749023438 * scale, 144 * scale, 114.85067749023438 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 61.295135498046875 * scale); ctx.bezierCurveTo(160.49996948242188 * scale, 92.29513549804688 * scale, 160.49996948242188 * scale, 92.29513549804688 * scale, 160 * scale, 123.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203 * scale, 51.295135498046875 * scale); ctx.bezierCurveTo(190.49996948242188 * scale, 83.29513549804688 * scale, 190.49996948242188 * scale, 83.29513549804688 * scale, 176 * scale, 115.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 89.29513549804688 * scale); ctx.bezierCurveTo(210.49996948242188 * scale, 104.79513549804688 * scale, 210.49996948242188 * scale, 104.79513549804688 * scale, 194 * scale, 120.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(266.9999694824219 * scale, 112.29513549804688 * scale); ctx.bezierCurveTo(233.49996948242188 * scale, 127.29513549804688 * scale, 233.49996948242188 * scale, 127.29513549804688 * scale, 199 * scale, 142.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(256.9999694824219 * scale, 155.29513549804688 * scale); ctx.bezierCurveTo(238.49996948242188 * scale, 156.29513549804688 * scale, 238.49996948242188 * scale, 156.29513549804688 * scale, 219 * scale, 157.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#281C08", 12 * scale); //#9e793d #5f461f ctx.translate(0, -8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 158.29513549804688 * scale); ctx.bezierCurveTo(86 * scale, 158.29513549804688 * scale, 86 * scale, 158.29513549804688 * scale, 106 * scale, 158.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57.999969482421875 * scale, 117.29513549804688 * scale); ctx.bezierCurveTo(85 * scale, 128.29513549804688 * scale, 85 * scale, 128.29513549804688 * scale, 113 * scale, 139.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95 * scale, 90.29513549804688 * scale); ctx.bezierCurveTo(112 * scale, 105.79513549804688 * scale, 112 * scale, 105.79513549804688 * scale, 129 * scale, 121.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116 * scale, 52.850677490234375 * scale); ctx.bezierCurveTo(130 * scale, 83.85067749023438 * scale, 130 * scale, 83.85067749023438 * scale, 144 * scale, 114.85067749023438 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 61.295135498046875 * scale); ctx.bezierCurveTo(160.49996948242188 * scale, 92.29513549804688 * scale, 160.49996948242188 * scale, 92.29513549804688 * scale, 160 * scale, 123.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203 * scale, 51.295135498046875 * scale); ctx.bezierCurveTo(190.49996948242188 * scale, 83.29513549804688 * scale, 190.49996948242188 * scale, 83.29513549804688 * scale, 176 * scale, 115.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(225 * scale, 89.29513549804688 * scale); ctx.bezierCurveTo(210.49996948242188 * scale, 104.79513549804688 * scale, 210.49996948242188 * scale, 104.79513549804688 * scale, 194 * scale, 120.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(266.9999694824219 * scale, 112.29513549804688 * scale); ctx.bezierCurveTo(233.49996948242188 * scale, 127.29513549804688 * scale, 233.49996948242188 * scale, 127.29513549804688 * scale, 199 * scale, 142.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(256.9999694824219 * scale, 155.29513549804688 * scale); ctx.bezierCurveTo(238.49996948242188 * scale, 156.29513549804688 * scale, 238.49996948242188 * scale, 156.29513549804688 * scale, 219 * scale, 157.29513549804688 * scale); ctx.closePath(); fill_path(ctx, undefined, "#5E3C10", 12 * scale); //#9e793d #5f461f /*sun*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96 * scale, 166 * scale); ctx.bezierCurveTo(88 * scale, 117 * scale, 129 * scale, 92 * scale, 161 * scale, 91 * scale); ctx.bezierCurveTo(201 * scale, 90 * scale, 223 * scale, 121 * scale, 230 * scale, 161 * scale); ctx.closePath(); fill_path(ctx, "#704618", "#5D3D1A", 8 * scale); //#9e793d #5f461f /*moon*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(94.00003051757812 * scale, 164.40341186523438 * scale); ctx.bezierCurveTo(162.50003051757812 * scale, 164.40341186523438 * scale, 230.00003051757812 * scale, 165.40341186523438 * scale, 231.00003051757812 * scale, 164.40341186523438 * scale); ctx.bezierCurveTo(214.00003051757812 * scale, 267.4034118652344 * scale, 92.00003051757812 * scale, 243.40341186523438 * scale, 93.00003051757812 * scale, 165.40341186523438 * scale); ctx.closePath(); fill_path(ctx, "#E1DDD5", "#EAE7E4", 8 * scale); //#9e793d #5f461f /*circle before arrow*/ circle(ctx, 160.00003051757812 * scale, 166.49432373046875 * scale, 28.30194339616981 * scale); fill_path(ctx, "#392C16", "#5E3E1A", 10 * scale); //#9e793d #5f461f return can; } function create_arrow_clock(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 321 * scale; can.height = 345 * scale; ctx.translate(0, 5 * scale); circle(ctx, 161.00003051757812 * scale, 165.40341186523438 * scale, 20.808652046684813 * scale); fill_path(ctx, "#C09D6F", "#A37943", 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162.00003051757812 * scale, 48.403411865234375 * scale); ctx.bezierCurveTo(172.50003051757812 * scale, 67.40341186523438 * scale, 172.50003051757812 * scale, 67.40341186523438 * scale, 183.00003051757812 * scale, 86.40341186523438 * scale); ctx.bezierCurveTo(160.50003051757812 * scale, 86.40341186523438 * scale, 160.50003051757812 * scale, 86.40341186523438 * scale, 138.00003051757812 * scale, 86.40341186523438 * scale); ctx.closePath(); fill_path(ctx, "#C09D6F", "#A37943", 10 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(161.50003051757812 * scale, 117.90341186523438 * scale); round_rect(ctx, -5.5 * scale, -37.5 * scale, 11 * scale, 75 * scale, 10 * scale); ctx.restore(); fill_path(ctx, "#C09D6F", "#A37943", 10 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(162.00003051757812 * scale, 78.90341186523438 * scale); round_rect(ctx, -10 * scale, -5.5 * scale, 20 * scale, 11 * scale, 1 * scale); ctx.restore(); fill_path(ctx, "#C09D6F"); //#9e793d #5f461f circle(ctx, 161.00003051757812 * scale, 163.6761474609375 * scale, 17.08800749063506 * scale); fill_path(ctx, "#C09D6F"); //#9e793d #5f461f return can; } function create_island(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); if (i == 0) { can.width = 566 * scale; can.height = 429 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(312.625 * scale, 39.046875 * scale); ctx.bezierCurveTo(456.625 * scale, 60.046875 * scale, 521.625 * scale, 134.046875 * scale, 528.625 * scale, 199.046875 * scale); ctx.bezierCurveTo(540.625 * scale, 298.046875 * scale, 491.625 * scale, 364.046875 * scale, 405.625 * scale, 394.046875 * scale); ctx.bezierCurveTo(270.625 * scale, 429.046875 * scale, 182.625 * scale, 395.046875 * scale, 100.625 * scale, 344.046875 * scale); ctx.bezierCurveTo(15.625 * scale, 283.046875 * scale, 20.625 * scale, 195.046875 * scale, 33.625 * scale, 158.046875 * scale); ctx.bezierCurveTo(56.625 * scale, 80.046875 * scale, 102.625 * scale, 46.046875 * scale, 183.625 * scale, 33.046875 * scale); ctx.bezierCurveTo(225.625 * scale, 25.046875 * scale, 270.625 * scale, 30.046875 * scale, 312.625 * scale, 39.046875 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f } else if (i == 1) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 511 * scale; can.height = 408 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(141.625 * scale, 49.296875 * scale); ctx.bezierCurveTo(225.625 * scale, 10.296875 * scale, 320.625 * scale, 16.296875 * scale, 390.625 * scale, 39.296875 * scale); ctx.bezierCurveTo(476.625 * scale, 71.296875 * scale, 483.625 * scale, 142.296875 * scale, 486.625 * scale, 197.296875 * scale); ctx.bezierCurveTo(491.625 * scale, 289.296875 * scale, 462.625 * scale, 317.296875 * scale, 417.625 * scale, 351.296875 * scale); ctx.bezierCurveTo(367.625 * scale, 385.296875 * scale, 313.625 * scale, 404.296875 * scale, 218.625 * scale, 395.296875 * scale); ctx.bezierCurveTo(108.625 * scale, 381.296875 * scale, 81.625 * scale, 350.296875 * scale, 52.625 * scale, 305.296875 * scale); ctx.bezierCurveTo(16.625 * scale, 244.296875 * scale, 23.625 * scale, 171.296875 * scale, 37.625 * scale, 145.296875 * scale); ctx.bezierCurveTo(65.625 * scale, 84.296875 * scale, 97.625 * scale, 74.296875 * scale, 141.625 * scale, 49.296875 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f } else if (i == 2) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 504 * scale; can.height = 408 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(153.625 * scale, 46.296875 * scale); ctx.bezierCurveTo(271.625 * scale, 17.296875 * scale, 345.625 * scale, 35.296875 * scale, 410.625 * scale, 71.296875 * scale); ctx.bezierCurveTo(473.625 * scale, 109.296875 * scale, 478.625 * scale, 167.296875 * scale, 473.625 * scale, 205.296875 * scale); ctx.bezierCurveTo(462.625 * scale, 295.296875 * scale, 438.625 * scale, 316.296875 * scale, 388.625 * scale, 345.296875 * scale); ctx.bezierCurveTo(331.625 * scale, 374.296875 * scale, 273.625 * scale, 392.296875 * scale, 180.625 * scale, 387.296875 * scale); ctx.bezierCurveTo(111.625 * scale, 380.296875 * scale, 86.625 * scale, 360.296875 * scale, 51.625 * scale, 309.296875 * scale); ctx.bezierCurveTo(23.625 * scale, 267.296875 * scale, 25.625 * scale, 226.296875 * scale, 27.625 * scale, 175.296875 * scale); ctx.bezierCurveTo(37.625 * scale, 99.296875 * scale, 88.625 * scale, 57.296875 * scale, 153.625 * scale, 46.296875 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f } return can; } function create_dragon_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 345 * scale; can.height = 250 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 58 * scale); ctx.bezierCurveTo(100.5 * scale, 43 * scale, 100.5 * scale, 43 * scale, 96 * scale, 28 * scale); ctx.bezierCurveTo(119.5 * scale, 33.5 * scale, 119.5 * scale, 33.5 * scale, 143 * scale, 39 * scale); ctx.bezierCurveTo(170 * scale, 37 * scale, 177 * scale, 37 * scale, 188 * scale, 40 * scale); ctx.bezierCurveTo(213 * scale, 33.5 * scale, 213 * scale, 33.5 * scale, 238 * scale, 27 * scale); ctx.bezierCurveTo(231 * scale, 52 * scale, 234 * scale, 42.5 * scale, 230 * scale, 58 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#cae9eb #75bcae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(108 * scale, 51 * scale); ctx.bezierCurveTo(91 * scale, 55 * scale, 85 * scale, 44 * scale, 86 * scale, 29 * scale); ctx.bezierCurveTo(62 * scale, 50 * scale, 78 * scale, 69 * scale, 92 * scale, 75 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#ffffff #51736d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(249 * scale, 27 * scale); ctx.bezierCurveTo(273 * scale, 49 * scale, 262 * scale, 68 * scale, 246 * scale, 77 * scale); ctx.bezierCurveTo(231 * scale, 59 * scale, 236 * scale, 66.5 * scale, 226 * scale, 56 * scale); ctx.bezierCurveTo(243 * scale, 53 * scale, 252 * scale, 43 * scale, 249 * scale, 28 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#ffffff #51736d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87 * scale, 78 * scale); ctx.bezierCurveTo(87 * scale, 59 * scale, 98 * scale, 46 * scale, 127 * scale, 48 * scale); ctx.bezierCurveTo(176 * scale, 48.5 * scale, 176 * scale, 48.5 * scale, 225 * scale, 49 * scale); ctx.bezierCurveTo(243 * scale, 49 * scale, 253 * scale, 59 * scale, 253 * scale, 76 * scale); ctx.bezierCurveTo(211 * scale, 85.5 * scale, 211 * scale, 85.5 * scale, 169 * scale, 95 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 8 * scale); //#2b4d48 #1b3a3a ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 105 * scale); ctx.bezierCurveTo(56 * scale, 92 * scale, 59 * scale, 86 * scale, 65 * scale, 73 * scale); ctx.bezierCurveTo(62.5 * scale, 61.5 * scale, 62.5 * scale, 61.5 * scale, 60 * scale, 50 * scale); ctx.bezierCurveTo(99.5 * scale, 64.5 * scale, 99.5 * scale, 64.5 * scale, 139 * scale, 79 * scale); ctx.bezierCurveTo(164 * scale, 77 * scale, 177 * scale, 76 * scale, 203 * scale, 78 * scale); ctx.bezierCurveTo(242 * scale, 63.5 * scale, 242 * scale, 63.5 * scale, 281 * scale, 49 * scale); ctx.bezierCurveTo(279 * scale, 60.5 * scale, 279 * scale, 60.5 * scale, 277 * scale, 72 * scale); ctx.bezierCurveTo(286 * scale, 88 * scale, 286 * scale, 96 * scale, 287 * scale, 104 * scale); ctx.bezierCurveTo(228.5 * scale, 127 * scale, 228.5 * scale, 127 * scale, 170 * scale, 150 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#cae9eb #75bcae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(48 * scale, 130 * scale); ctx.bezierCurveTo(61 * scale, 155 * scale, 63 * scale, 165 * scale, 56 * scale, 171 * scale); ctx.bezierCurveTo(48 * scale, 177 * scale, 40 * scale, 171 * scale, 38 * scale, 178 * scale); ctx.bezierCurveTo(33 * scale, 180 * scale, 37 * scale, 188 * scale, 47 * scale, 208 * scale); ctx.bezierCurveTo(52 * scale, 221 * scale, 55 * scale, 222 * scale, 75 * scale, 229 * scale); ctx.bezierCurveTo(91 * scale, 213 * scale, 98 * scale, 212 * scale, 112 * scale, 219 * scale); ctx.bezierCurveTo(167 * scale, 225 * scale, 187 * scale, 224 * scale, 222 * scale, 220 * scale); ctx.bezierCurveTo(244 * scale, 214 * scale, 247 * scale, 213 * scale, 263 * scale, 229 * scale); ctx.bezierCurveTo(295 * scale, 220 * scale, 291 * scale, 215 * scale, 301 * scale, 194 * scale); ctx.bezierCurveTo(308 * scale, 178 * scale, 309 * scale, 176 * scale, 302 * scale, 173 * scale); ctx.bezierCurveTo(290 * scale, 177 * scale, 289 * scale, 177 * scale, 283 * scale, 169 * scale); ctx.bezierCurveTo(279 * scale, 163 * scale, 279 * scale, 161 * scale, 290 * scale, 130 * scale); ctx.bezierCurveTo(270 * scale, 127 * scale, 270 * scale, 127 * scale, 250 * scale, 124 * scale); ctx.bezierCurveTo(209 * scale, 137.5 * scale, 209 * scale, 137.5 * scale, 168 * scale, 151 * scale); ctx.bezierCurveTo(121 * scale, 135 * scale, 121 * scale, 135 * scale, 74 * scale, 119 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#cae9eb #75bcae ctx.globalCompositeOperation = "destination-out"; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 158 * scale); ctx.bezierCurveTo(152 * scale, 193 * scale, 158 * scale, 205 * scale, 140 * scale, 203 * scale); ctx.bezierCurveTo(99 * scale, 195 * scale, 96 * scale, 189 * scale, 86 * scale, 173 * scale); ctx.bezierCurveTo(80 * scale, 159 * scale, 88 * scale, 145 * scale, 104 * scale, 141 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 8 * scale); //#80ccca #59ada7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(215 * scale, 146 * scale); ctx.bezierCurveTo(204 * scale, 167 * scale, 204 * scale, 167 * scale, 193 * scale, 188 * scale); ctx.bezierCurveTo(187 * scale, 201 * scale, 191 * scale, 209 * scale, 213 * scale, 201 * scale); ctx.bezierCurveTo(247 * scale, 192 * scale, 253 * scale, 181 * scale, 257 * scale, 169 * scale); ctx.bezierCurveTo(260 * scale, 157 * scale, 254 * scale, 149 * scale, 243 * scale, 141 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 8 * scale); //#80ccca #59ada7 ctx.globalCompositeOperation = "source-over"; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 158 * scale); ctx.bezierCurveTo(152 * scale, 193 * scale, 158 * scale, 205 * scale, 140 * scale, 203 * scale); ctx.bezierCurveTo(99 * scale, 195 * scale, 96 * scale, 189 * scale, 86 * scale, 173 * scale); ctx.bezierCurveTo(80 * scale, 159 * scale, 88 * scale, 145 * scale, 104 * scale, 141 * scale); ctx.closePath(); fill_path(ctx, undefined, color[8], 8 * scale); //#80ccca #59ada7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(215 * scale, 146 * scale); ctx.bezierCurveTo(204 * scale, 167 * scale, 204 * scale, 167 * scale, 193 * scale, 188 * scale); ctx.bezierCurveTo(187 * scale, 201 * scale, 191 * scale, 209 * scale, 213 * scale, 201 * scale); ctx.bezierCurveTo(247 * scale, 192 * scale, 253 * scale, 181 * scale, 257 * scale, 169 * scale); ctx.bezierCurveTo(260 * scale, 157 * scale, 254 * scale, 149 * scale, 243 * scale, 141 * scale); ctx.closePath(); fill_path(ctx, undefined, color[8], 8 * scale); //#80ccca #59ada7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 66 * scale); ctx.bezierCurveTo(57 * scale, 107 * scale, 63 * scale, 96 * scale, 120 * scale, 106 * scale); ctx.bezierCurveTo(154 * scale, 112 * scale, 163 * scale, 116 * scale, 174 * scale, 135 * scale); ctx.bezierCurveTo(180 * scale, 109 * scale, 191 * scale, 113 * scale, 237 * scale, 103 * scale); ctx.bezierCurveTo(276 * scale, 100 * scale, 289 * scale, 94 * scale, 301 * scale, 67 * scale); ctx.bezierCurveTo(317 * scale, 112 * scale, 301 * scale, 141 * scale, 274 * scale, 139 * scale); ctx.bezierCurveTo(204 * scale, 166 * scale, 197 * scale, 169 * scale, 173 * scale, 183 * scale); ctx.bezierCurveTo(170 * scale, 183 * scale, 170 * scale, 183 * scale, 167 * scale, 183 * scale); ctx.bezierCurveTo(132 * scale, 160 * scale, 112 * scale, 156 * scale, 73 * scale, 141 * scale); ctx.bezierCurveTo(43 * scale, 146 * scale, 27 * scale, 120 * scale, 39 * scale, 66 * scale); ctx.closePath(); fill_path(ctx, color[7], color[8], 8 * scale); //#80ccca #59ada7 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 185 * scale); ctx.bezierCurveTo(115 * scale, 200 * scale, 118 * scale, 206 * scale, 124 * scale, 212 * scale); ctx.bezierCurveTo(133 * scale, 223 * scale, 132 * scale, 231 * scale, 121 * scale, 230 * scale); ctx.bezierCurveTo(108 * scale, 226 * scale, 108 * scale, 215 * scale, 107 * scale, 209 * scale); ctx.bezierCurveTo(106 * scale, 201 * scale, 110 * scale, 196 * scale, 114 * scale, 185 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#ffffff #51736d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(226 * scale, 186 * scale); ctx.bezierCurveTo(234 * scale, 201 * scale, 238 * scale, 209 * scale, 228 * scale, 225 * scale); ctx.bezierCurveTo(223 * scale, 233 * scale, 213 * scale, 233 * scale, 211 * scale, 226 * scale); ctx.bezierCurveTo(206 * scale, 219 * scale, 217 * scale, 216 * scale, 221 * scale, 207 * scale); ctx.bezierCurveTo(225 * scale, 196 * scale, 225 * scale, 191 * scale, 226 * scale, 186 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#ffffff #51736d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(172 * scale, 110 * scale); ctx.bezierCurveTo(189 * scale, 153 * scale, 192 * scale, 160 * scale, 188 * scale, 175 * scale); ctx.bezierCurveTo(183 * scale, 190 * scale, 176 * scale, 197 * scale, 165 * scale, 191 * scale); ctx.bezierCurveTo(153 * scale, 181 * scale, 152 * scale, 166 * scale, 157 * scale, 151 * scale); ctx.bezierCurveTo(164.5 * scale, 131 * scale, 164.5 * scale, 131 * scale, 172 * scale, 111 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 8 * scale); //#ffffff #51736d return can; } function create_fir_one(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 149 * scale; can.height = 153 * scale; ctx.globalAlpha = 0.5; circle(ctx, 74.5 * scale, 85 * scale, 66 * scale); fill_path(ctx, color[0]); //#a7a7a7 ctx.globalAlpha = 1; circle(ctx, 75.5 * scale, 72.5 * scale, 67 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#56d93f #38ee6f circle(ctx, 75.5 * scale, 73.5 * scale, 54 * scale); fill_path(ctx, color[3]); //#d6fcc7 ctx.globalAlpha = 0.5; circle(ctx, 74.5 * scale, 80.5 * scale, 39 * scale); fill_path(ctx, color[4]); //#96bb89 ctx.globalAlpha = 1; circle(ctx, 74.5 * scale, 74.5 * scale, 37 * scale); fill_path(ctx, color[5]); //#61e05c return can; } function create_fir_two(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 173 * scale; can.height = 178 * scale; ctx.globalAlpha = 0.5; circle(ctx, 86.5 * scale, 98 * scale, 80 * scale); fill_path(ctx, color[0]); //#80e9ba #7ebfd8 ctx.globalAlpha = 1; circle(ctx, 86.5 * scale, 89 * scale, 81 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#57b587 #4a788c circle(ctx, 86.5 * scale, 86 * scale, 59 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#57b587 #4a788c ctx.globalAlpha = 0.5; circle(ctx, 86.5 * scale, 95 * scale, 34 * scale); fill_path(ctx, color[0]); //#57b587 #4a788c ctx.globalAlpha = 1; circle(ctx, 86.5 * scale, 89 * scale, 34 * scale); fill_path(ctx, color[5]); //#57b587 #4a788c return can; } function create_fir_three(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 253 * scale; can.height = 260 * scale; ctx.globalAlpha = 0.5; circle(ctx, 126.5 * scale, 134 * scale, 119 * scale); fill_path(ctx, color[0]); //#95db98 #5cea99 ctx.globalAlpha = 1; circle(ctx, 126.5 * scale, 124 * scale, 119 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#95db98 #5cea99 circle(ctx, 126.5 * scale, 127 * scale, 100 * scale); fill_path(ctx, color[3]); //#c6ffc6 ctx.globalAlpha = 0.5; circle(ctx, 126.5 * scale, 135 * scale, 81 * scale); fill_path(ctx, color[0]); //#5dff45 ctx.globalAlpha = 1; circle(ctx, 126.5 * scale, 125 * scale, 84 * scale); fill_path(ctx, color[4], color[5], 4 * scale); //#339e22 circle(ctx, 126.5 * scale, 125 * scale, 61 * scale); fill_path(ctx, color[6], color[7], 4 * scale); //#da5482 ctx.globalAlpha = 0.5; circle(ctx, 126.5 * scale, 134 * scale, 40 * scale); fill_path(ctx, color[8]); //#cf907c ctx.globalAlpha = 1; circle(ctx, 126.5 * scale, 125 * scale, 40 * scale); fill_path(ctx, color[9]); //#7bc322 return can; } function create_amethyst(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 139 * scale; can.height = 135 * scale; ctx.translate(0, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 77 * scale); ctx.bezierCurveTo(6 * scale, 41 * scale, 6 * scale, 33 * scale, 12 * scale, 27 * scale); ctx.bezierCurveTo(27 * scale, 6 * scale, 28 * scale, 6 * scale, 37 * scale, 6 * scale); ctx.bezierCurveTo(62 * scale, 3 * scale, 64 * scale, 5 * scale, 67 * scale, 13 * scale); ctx.bezierCurveTo(80 * scale, 36 * scale, 73.5 * scale, 25 * scale, 80 * scale, 37 * scale); ctx.bezierCurveTo(73.5 * scale, 54 * scale, 65 * scale, 74 * scale, 67 * scale, 71 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#e47cdc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65 * scale, 37 * scale); ctx.bezierCurveTo(105 * scale, 40 * scale, 113 * scale, 39 * scale, 117 * scale, 48 * scale); ctx.bezierCurveTo(126 * scale, 70 * scale, 128 * scale, 72 * scale, 124 * scale, 80 * scale); ctx.bezierCurveTo(112 * scale, 101 * scale, 110 * scale, 104 * scale, 99 * scale, 104 * scale); ctx.bezierCurveTo(59 * scale, 100 * scale, 55 * scale, 99 * scale, 56 * scale, 99 * scale); ctx.bezierCurveTo(47.5 * scale, 79 * scale, 45 * scale, 66 * scale, 39 * scale, 59 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#e47cdc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 63 * scale); ctx.bezierCurveTo(5 * scale, 99 * scale, 5 * scale, 101 * scale, 8 * scale, 103 * scale); ctx.bezierCurveTo(19 * scale, 123 * scale, 22 * scale, 125 * scale, 28 * scale, 126 * scale); ctx.bezierCurveTo(57 * scale, 127 * scale, 55 * scale, 127 * scale, 58 * scale, 120 * scale); ctx.bezierCurveTo(82 * scale, 86 * scale, 83 * scale, 78 * scale, 82 * scale, 87 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#e47cdc ctx.translate(0, -10 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 77 * scale); ctx.bezierCurveTo(6 * scale, 41 * scale, 6 * scale, 33 * scale, 12 * scale, 27 * scale); ctx.bezierCurveTo(27 * scale, 6 * scale, 28 * scale, 6 * scale, 37 * scale, 6 * scale); ctx.bezierCurveTo(62 * scale, 3 * scale, 64 * scale, 5 * scale, 67 * scale, 13 * scale); ctx.bezierCurveTo(80 * scale, 36 * scale, 73.5 * scale, 25 * scale, 80 * scale, 37 * scale); ctx.bezierCurveTo(73.5 * scale, 54 * scale, 65 * scale, 74 * scale, 67 * scale, 71 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#e47cdc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65 * scale, 37 * scale); ctx.bezierCurveTo(105 * scale, 40 * scale, 113 * scale, 39 * scale, 117 * scale, 48 * scale); ctx.bezierCurveTo(126 * scale, 70 * scale, 128 * scale, 72 * scale, 124 * scale, 80 * scale); ctx.bezierCurveTo(112 * scale, 101 * scale, 110 * scale, 104 * scale, 99 * scale, 104 * scale); ctx.bezierCurveTo(59 * scale, 100 * scale, 55 * scale, 99 * scale, 56 * scale, 99 * scale); ctx.bezierCurveTo(47.5 * scale, 79 * scale, 45 * scale, 66 * scale, 39 * scale, 59 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#e47cdc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 63 * scale); ctx.bezierCurveTo(5 * scale, 99 * scale, 5 * scale, 101 * scale, 8 * scale, 103 * scale); ctx.bezierCurveTo(19 * scale, 123 * scale, 22 * scale, 125 * scale, 28 * scale, 126 * scale); ctx.bezierCurveTo(57 * scale, 127 * scale, 55 * scale, 127 * scale, 58 * scale, 120 * scale); ctx.bezierCurveTo(82 * scale, 86 * scale, 83 * scale, 78 * scale, 82 * scale, 87 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#e47cdc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 38 * scale); ctx.bezierCurveTo(72.5 * scale, 52 * scale, 72.5 * scale, 52 * scale, 65 * scale, 66 * scale); ctx.bezierCurveTo(47.5 * scale, 37 * scale, 47.5 * scale, 37 * scale, 30 * scale, 7 * scale); ctx.bezierCurveTo(48 * scale, 4 * scale, 57 * scale, 4 * scale, 64 * scale, 10 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#dbacce ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65 * scale, 65 * scale); ctx.bezierCurveTo(125 * scale, 73 * scale, 95.5 * scale, 69 * scale, 126 * scale, 73 * scale); ctx.bezierCurveTo(119 * scale, 98 * scale, 106 * scale, 104 * scale, 98 * scale, 103 * scale); ctx.bezierCurveTo(84.5 * scale, 102 * scale, 84.5 * scale, 102 * scale, 71 * scale, 101 * scale); ctx.bezierCurveTo(64 * scale, 86 * scale, 64 * scale, 86 * scale, 57 * scale, 70 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#dbacce ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 69 * scale); ctx.bezierCurveTo(64 * scale, 65 * scale, 46 * scale, 67 * scale, 65 * scale, 65 * scale); ctx.bezierCurveTo(43.5 * scale, 94 * scale, 43.5 * scale, 94 * scale, 22 * scale, 123 * scale); ctx.bezierCurveTo(8 * scale, 103 * scale, 8 * scale, 103 * scale, 9 * scale, 103 * scale); ctx.bezierCurveTo(5 * scale, 98 * scale, 11 * scale, 89 * scale, 26 * scale, 70 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#dbacce ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26 * scale, 69 * scale); ctx.bezierCurveTo(65 * scale, 60 * scale, 45 * scale, 65 * scale, 64 * scale, 60 * scale); ctx.bezierCurveTo(63 * scale, 65 * scale, 63 * scale, 65 * scale, 62 * scale, 70 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#dbacce ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 38 * scale); ctx.bezierCurveTo(68 * scale, 70 * scale, 75 * scale, 53 * scale, 70 * scale, 68 * scale); ctx.bezierCurveTo(65 * scale, 67 * scale, 65 * scale, 67 * scale, 60 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#dbacce return can; } function create_dragon_ground(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 100 * scale; can.height = 100 * scale; ctx.globalAlpha = 0.5; ctx.fillStyle = color[0]; ctx.fillRect(0, 0, can.width, can.height); return can; } function create_snow_one(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 300 * scale; ctx.translate(-80 * scale, -20); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(200.5 * scale, 14.953125 * scale); ctx.bezierCurveTo(203 * scale, 171.953125 * scale, 203 * scale, 171.953125 * scale, 205.5 * scale, 328.953125 * scale); ctx.bezierCurveTo(188.5 * scale, 257.953125 * scale, 164.5 * scale, 216.953125 * scale, 166.5 * scale, 176.953125 * scale); ctx.bezierCurveTo(168.5 * scale, 133.953125 * scale, 198.5 * scale, 98.953125 * scale, 200.5 * scale, 14.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 return can; } function create_snow_two(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 300 * scale; ctx.translate(-200 * scale, -40 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(344 * scale, 18.40625 * scale); ctx.bezierCurveTo(345 * scale, 361.40625 * scale, 344 * scale, 191.40625 * scale, 344 * scale, 364.40625 * scale); ctx.bezierCurveTo(261 * scale, 275.40625 * scale, 274 * scale, 259.40625 * scale, 229 * scale, 213.40625 * scale); ctx.bezierCurveTo(199 * scale, 187.40625 * scale, 222 * scale, 133.40625 * scale, 273 * scale, 100.40625 * scale); ctx.bezierCurveTo(321 * scale, 71.40625 * scale, 327 * scale, 34.40625 * scale, 344 * scale, 18.40625 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(335 * scale, 38.072906494140625 * scale); ctx.bezierCurveTo(307 * scale, 62.072906494140625 * scale, 291 * scale, 60.072906494140625 * scale, 262 * scale, 68.07290649414062 * scale); ctx.bezierCurveTo(223 * scale, 80.07290649414062 * scale, 225 * scale, 111.07290649414062 * scale, 264 * scale, 139.07290649414062 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_snow_three(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 320 * scale; ctx.translate(-60 * scale, -15 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(188.5 * scale, 3.953125 * scale); ctx.bezierCurveTo(188.5 * scale, 171.453125 * scale, 188.5 * scale, 171.453125 * scale, 188.5 * scale, 338.953125 * scale); ctx.bezierCurveTo(162.5 * scale, 268.953125 * scale, 145.5 * scale, 265.953125 * scale, 116.5 * scale, 244.953125 * scale); ctx.bezierCurveTo(67.5 * scale, 204.953125 * scale, 87.5 * scale, 160.953125 * scale, 113.5 * scale, 125.953125 * scale); ctx.bezierCurveTo(141.5 * scale, 90.953125 * scale, 176.5 * scale, 56.953125 * scale, 188.5 * scale, 3.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_snow_four(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 330 * scale; ctx.translate(-60 * scale, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(188.5 * scale, 7.953125 * scale); ctx.bezierCurveTo(188.5 * scale, 334.953125 * scale, 188.5 * scale, 332.953125 * scale, 188.5 * scale, 339.953125 * scale); ctx.bezierCurveTo(166.5 * scale, 295.953125 * scale, 145.5 * scale, 295.953125 * scale, 139.5 * scale, 282.953125 * scale); ctx.bezierCurveTo(124.5 * scale, 244.953125 * scale, 139.5 * scale, 243.953125 * scale, 131.5 * scale, 212.953125 * scale); ctx.bezierCurveTo(118.5 * scale, 161.953125 * scale, 69.5 * scale, 156.953125 * scale, 74.5 * scale, 92.953125 * scale); ctx.bezierCurveTo(85.5 * scale, 41.953125 * scale, 158.5 * scale, 49.953125 * scale, 188.5 * scale, 7.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_snow_five(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 48 * scale; can.height = 47 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(7.1875 * scale, 25.434661865234375 * scale); ctx.bezierCurveTo(11.1875 * scale, 13.434661865234375 * scale, 18.1875 * scale, 8.434661865234375 * scale, 32.1875 * scale, 10.434661865234375 * scale); ctx.bezierCurveTo(45.1875 * scale, 14.434661865234375 * scale, 41.1875 * scale, 24.434661865234375 * scale, 36.1875 * scale, 30.434661865234375 * scale); ctx.bezierCurveTo(22.1875 * scale, 42.434661865234375 * scale, 2.1875 * scale, 41.434661865234375 * scale, 7.1875 * scale, 25.434661865234375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_snow_six(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 280 * scale; ctx.translate(-100 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(228.5 * scale, 331.953125 * scale); ctx.bezierCurveTo(228.5 * scale, 12.953125 * scale, 228.5 * scale, 171.453125 * scale, 228.5 * scale, 10.953125 * scale); ctx.bezierCurveTo(196.5 * scale, 76.953125 * scale, 206.5 * scale, 78.953125 * scale, 191.5 * scale, 114.953125 * scale); ctx.bezierCurveTo(162.5 * scale, 170.953125 * scale, 206.5 * scale, 220.953125 * scale, 210.5 * scale, 251.953125 * scale); ctx.bezierCurveTo(218.5 * scale, 287.953125 * scale, 220.5 * scale, 291.953125 * scale, 228.5 * scale, 331.953125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 return can; } window.Object.defineProperties = this.a; function create_snow_sept(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 33 * scale; can.height = 35 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(12.75 * scale, 7.1328125 * scale); ctx.bezierCurveTo(26.75 * scale, 8.1328125 * scale, 27.75 * scale, 14.1328125 * scale, 24.75 * scale, 23.1328125 * scale); ctx.bezierCurveTo(19.75 * scale, 31.1328125 * scale, 15.75 * scale, 33.1328125 * scale, 6.75 * scale, 26.1328125 * scale); ctx.bezierCurveTo(0.75 * scale, 19.1328125 * scale, 4.75 * scale, 8.1328125 * scale, 12.75 * scale, 7.1328125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 return can; } function create_snow_step(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 20 * scale; can.height = 35 * scale; round_rect(ctx, 0, 0, 20, 35, 7); fill_path(ctx, color[0]); return can; } function create_winter_fox(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 161 * scale; can.height = 190 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 8); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9 * scale, 93 * scale); ctx.bezierCurveTo(17 * scale, 95 * scale, 19 * scale, 95 * scale, 21 * scale, 95 * scale); ctx.bezierCurveTo(9 * scale, 83 * scale, 17 * scale, 93 * scale, 4 * scale, 76 * scale); ctx.bezierCurveTo(11 * scale, 75 * scale, 11 * scale, 75 * scale, 18 * scale, 75 * scale); ctx.bezierCurveTo(13 * scale, 67 * scale, 13 * scale, 67 * scale, 7 * scale, 59 * scale); ctx.bezierCurveTo(14 * scale, 59 * scale, 14 * scale, 59 * scale, 21 * scale, 59 * scale); ctx.bezierCurveTo(46 * scale, 35 * scale, 35 * scale, 45 * scale, 49 * scale, 31 * scale); ctx.bezierCurveTo(53 * scale, 24 * scale, 51 * scale, 21 * scale, 51 * scale, 16 * scale); ctx.bezierCurveTo(63 * scale, 23 * scale, 63 * scale, 24 * scale, 69 * scale, 29 * scale); ctx.bezierCurveTo(76 * scale, 7 * scale, 75 * scale, 11 * scale, 76 * scale, 6 * scale); ctx.bezierCurveTo(81 * scale, 12 * scale, 84 * scale, 18 * scale, 89 * scale, 27 * scale); ctx.bezierCurveTo(95 * scale, 25 * scale, 100 * scale, 16 * scale, 105 * scale, 14 * scale); ctx.bezierCurveTo(103 * scale, 25 * scale, 111 * scale, 33 * scale, 110 * scale, 34 * scale); ctx.bezierCurveTo(123 * scale, 48 * scale, 123 * scale, 48 * scale, 136 * scale, 62 * scale); ctx.bezierCurveTo(142 * scale, 60 * scale, 147 * scale, 59 * scale, 155 * scale, 58 * scale); ctx.bezierCurveTo(147 * scale, 65 * scale, 147 * scale, 65 * scale, 139 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 73 * scale, 145 * scale, 73 * scale, 151 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 80 * scale, 145 * scale, 80 * scale, 138 * scale, 87 * scale); ctx.bezierCurveTo(144 * scale, 88 * scale, 144 * scale, 88 * scale, 150 * scale, 89 * scale); ctx.bezierCurveTo(125 * scale, 103 * scale, 125 * scale, 125 * scale, 113 * scale, 141 * scale); ctx.bezierCurveTo(92 * scale, 178 * scale, 85 * scale, 177 * scale, 76 * scale, 178 * scale); ctx.bezierCurveTo(64 * scale, 179 * scale, 51 * scale, 164 * scale, 35 * scale, 131 * scale); ctx.bezierCurveTo(18 * scale, 95 * scale, 13 * scale, 99 * scale, 8 * scale, 93 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 ctx.globalAlpha = 1; ctx.translate(0, -8); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9 * scale, 93 * scale); ctx.bezierCurveTo(17 * scale, 95 * scale, 19 * scale, 95 * scale, 21 * scale, 95 * scale); ctx.bezierCurveTo(9 * scale, 83 * scale, 17 * scale, 93 * scale, 4 * scale, 76 * scale); ctx.bezierCurveTo(11 * scale, 75 * scale, 11 * scale, 75 * scale, 18 * scale, 75 * scale); ctx.bezierCurveTo(13 * scale, 67 * scale, 13 * scale, 67 * scale, 7 * scale, 59 * scale); ctx.bezierCurveTo(14 * scale, 59 * scale, 14 * scale, 59 * scale, 21 * scale, 59 * scale); ctx.bezierCurveTo(46 * scale, 35 * scale, 35 * scale, 45 * scale, 49 * scale, 31 * scale); ctx.bezierCurveTo(53 * scale, 24 * scale, 51 * scale, 21 * scale, 51 * scale, 16 * scale); ctx.bezierCurveTo(63 * scale, 23 * scale, 63 * scale, 24 * scale, 69 * scale, 29 * scale); ctx.bezierCurveTo(76 * scale, 7 * scale, 75 * scale, 11 * scale, 76 * scale, 6 * scale); ctx.bezierCurveTo(81 * scale, 12 * scale, 84 * scale, 18 * scale, 89 * scale, 27 * scale); ctx.bezierCurveTo(95 * scale, 25 * scale, 100 * scale, 16 * scale, 105 * scale, 14 * scale); ctx.bezierCurveTo(103 * scale, 25 * scale, 111 * scale, 33 * scale, 110 * scale, 34 * scale); ctx.bezierCurveTo(123 * scale, 48 * scale, 123 * scale, 48 * scale, 136 * scale, 62 * scale); ctx.bezierCurveTo(142 * scale, 60 * scale, 147 * scale, 59 * scale, 155 * scale, 58 * scale); ctx.bezierCurveTo(147 * scale, 65 * scale, 147 * scale, 65 * scale, 139 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 73 * scale, 145 * scale, 73 * scale, 151 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 80 * scale, 145 * scale, 80 * scale, 138 * scale, 87 * scale); ctx.bezierCurveTo(144 * scale, 88 * scale, 144 * scale, 88 * scale, 150 * scale, 89 * scale); ctx.bezierCurveTo(125 * scale, 103 * scale, 125 * scale, 125 * scale, 113 * scale, 141 * scale); ctx.bezierCurveTo(92 * scale, 178 * scale, 85 * scale, 177 * scale, 76 * scale, 178 * scale); ctx.bezierCurveTo(64 * scale, 179 * scale, 51 * scale, 164 * scale, 35 * scale, 131 * scale); ctx.bezierCurveTo(18 * scale, 95 * scale, 13 * scale, 99 * scale, 8 * scale, 93 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 63 * scale); ctx.bezierCurveTo(23 * scale, 54 * scale, 24 * scale, 47 * scale, 26 * scale, 37 * scale); ctx.bezierCurveTo(28 * scale, 29 * scale, 31 * scale, 31 * scale, 41 * scale, 35 * scale); ctx.bezierCurveTo(52 * scale, 45 * scale, 55 * scale, 51 * scale, 57 * scale, 53 * scale); ctx.bezierCurveTo(50 * scale, 50 * scale, 44 * scale, 47 * scale, 43 * scale, 48 * scale); ctx.bezierCurveTo(43 * scale, 52 * scale, 43 * scale, 52 * scale, 42 * scale, 57 * scale); ctx.bezierCurveTo(38 * scale, 54 * scale, 38 * scale, 54 * scale, 33 * scale, 51 * scale); ctx.bezierCurveTo(34 * scale, 56 * scale, 34 * scale, 56 * scale, 34 * scale, 61 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99 * scale, 55 * scale); ctx.bezierCurveTo(107 * scale, 43 * scale, 113 * scale, 39 * scale, 121 * scale, 34 * scale); ctx.bezierCurveTo(130 * scale, 29 * scale, 130 * scale, 34 * scale, 130 * scale, 42 * scale); ctx.bezierCurveTo(131 * scale, 57 * scale, 128 * scale, 61 * scale, 129 * scale, 63 * scale); ctx.bezierCurveTo(124 * scale, 62 * scale, 124 * scale, 62 * scale, 119 * scale, 61 * scale); ctx.bezierCurveTo(119 * scale, 56 * scale, 120 * scale, 61 * scale, 118 * scale, 52 * scale); ctx.bezierCurveTo(115 * scale, 55 * scale, 111 * scale, 59 * scale, 111 * scale, 58 * scale); ctx.bezierCurveTo(110 * scale, 54 * scale, 109 * scale, 57 * scale, 109 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 circle(ctx, 103 * scale, 110 * scale, 11 * scale); fill_path(ctx, color[4]); //#000000 circle(ctx, 55 * scale, 111 * scale, 11 * scale); fill_path(ctx, color[4]); //#000000 circle(ctx, 99 * scale, 107 * scale, 5 * scale); fill_path(ctx, color[1]); //#f2f2f2 circle(ctx, 51 * scale, 108 * scale, 5 * scale); fill_path(ctx, color[1]); //#f2f2f2 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 121 * scale); ctx.bezierCurveTo(45 * scale, 128 * scale, 51 * scale, 133 * scale, 53 * scale, 141 * scale); ctx.bezierCurveTo(59 * scale, 161 * scale, 70 * scale, 173 * scale, 80 * scale, 169 * scale); ctx.bezierCurveTo(89 * scale, 172 * scale, 99 * scale, 149 * scale, 107 * scale, 133 * scale); ctx.bezierCurveTo(114 * scale, 122 * scale, 119 * scale, 123 * scale, 124 * scale, 119 * scale); ctx.bezierCurveTo(109 * scale, 148 * scale, 117 * scale, 133 * scale, 109 * scale, 147 * scale); ctx.bezierCurveTo(87 * scale, 180 * scale, 84 * scale, 179 * scale, 76 * scale, 178 * scale); ctx.bezierCurveTo(49 * scale, 173 * scale, 44 * scale, 149 * scale, 31 * scale, 121 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-2, 0); ctx.moveTo(71 * scale, 162 * scale); ctx.bezierCurveTo(80 * scale, 155 * scale, 85 * scale, 159 * scale, 89 * scale, 164 * scale); ctx.bezierCurveTo(90 * scale, 171 * scale, 86 * scale, 173 * scale, 79 * scale, 173 * scale); ctx.bezierCurveTo(67 * scale, 172 * scale, 67 * scale, 168 * scale, 71 * scale, 162 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 ctx.translate(2, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9 * scale, 93 * scale); ctx.bezierCurveTo(17 * scale, 95 * scale, 19 * scale, 95 * scale, 21 * scale, 95 * scale); ctx.bezierCurveTo(9 * scale, 83 * scale, 17 * scale, 93 * scale, 4 * scale, 76 * scale); ctx.bezierCurveTo(11 * scale, 75 * scale, 11 * scale, 75 * scale, 18 * scale, 75 * scale); ctx.bezierCurveTo(13 * scale, 67 * scale, 13 * scale, 67 * scale, 7 * scale, 59 * scale); ctx.bezierCurveTo(14 * scale, 59 * scale, 14 * scale, 59 * scale, 21 * scale, 59 * scale); ctx.bezierCurveTo(46 * scale, 35 * scale, 35 * scale, 45 * scale, 49 * scale, 31 * scale); ctx.bezierCurveTo(53 * scale, 24 * scale, 51 * scale, 21 * scale, 51 * scale, 16 * scale); ctx.bezierCurveTo(63 * scale, 23 * scale, 63 * scale, 24 * scale, 69 * scale, 29 * scale); ctx.bezierCurveTo(76 * scale, 7 * scale, 75 * scale, 11 * scale, 76 * scale, 6 * scale); ctx.bezierCurveTo(81 * scale, 12 * scale, 84 * scale, 18 * scale, 89 * scale, 27 * scale); ctx.bezierCurveTo(95 * scale, 25 * scale, 100 * scale, 16 * scale, 105 * scale, 14 * scale); ctx.bezierCurveTo(103 * scale, 25 * scale, 111 * scale, 33 * scale, 110 * scale, 34 * scale); ctx.bezierCurveTo(123 * scale, 48 * scale, 123 * scale, 48 * scale, 136 * scale, 62 * scale); ctx.bezierCurveTo(142 * scale, 60 * scale, 147 * scale, 59 * scale, 155 * scale, 58 * scale); ctx.bezierCurveTo(147 * scale, 65 * scale, 147 * scale, 65 * scale, 139 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 73 * scale, 145 * scale, 73 * scale, 151 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 80 * scale, 145 * scale, 80 * scale, 138 * scale, 87 * scale); ctx.bezierCurveTo(144 * scale, 88 * scale, 144 * scale, 88 * scale, 150 * scale, 89 * scale); ctx.bezierCurveTo(125 * scale, 103 * scale, 125 * scale, 125 * scale, 113 * scale, 141 * scale); ctx.bezierCurveTo(92 * scale, 178 * scale, 85 * scale, 177 * scale, 76 * scale, 178 * scale); ctx.bezierCurveTo(64 * scale, 179 * scale, 51 * scale, 164 * scale, 35 * scale, 131 * scale); ctx.bezierCurveTo(18 * scale, 95 * scale, 13 * scale, 99 * scale, 8 * scale, 93 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 4 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25 * scale, 63 * scale); ctx.bezierCurveTo(16 * scale, 58 * scale, 17 * scale, 51 * scale, 17 * scale, 33 * scale); ctx.bezierCurveTo(19 * scale, 12 * scale, 21 * scale, 12 * scale, 32 * scale, 17 * scale); ctx.bezierCurveTo(63 * scale, 31 * scale, 66 * scale, 45 * scale, 66 * scale, 54 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(91 * scale, 53 * scale); ctx.bezierCurveTo(91 * scale, 40 * scale, 98 * scale, 33 * scale, 121 * scale, 20 * scale); ctx.bezierCurveTo(137 * scale, 12 * scale, 137 * scale, 16 * scale, 139 * scale, 27 * scale); ctx.bezierCurveTo(141 * scale, 49 * scale, 140 * scale, 57 * scale, 134 * scale, 64 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 63 * scale); ctx.bezierCurveTo(23 * scale, 54 * scale, 24 * scale, 47 * scale, 26 * scale, 37 * scale); ctx.bezierCurveTo(28 * scale, 29 * scale, 31 * scale, 31 * scale, 41 * scale, 35 * scale); ctx.bezierCurveTo(52 * scale, 45 * scale, 55 * scale, 51 * scale, 57 * scale, 53 * scale); ctx.bezierCurveTo(50 * scale, 50 * scale, 44 * scale, 47 * scale, 43 * scale, 48 * scale); ctx.bezierCurveTo(43 * scale, 52 * scale, 43 * scale, 52 * scale, 42 * scale, 57 * scale); ctx.bezierCurveTo(38 * scale, 54 * scale, 38 * scale, 54 * scale, 33 * scale, 51 * scale); ctx.bezierCurveTo(34 * scale, 56 * scale, 34 * scale, 56 * scale, 34 * scale, 61 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99 * scale, 55 * scale); ctx.bezierCurveTo(107 * scale, 43 * scale, 113 * scale, 39 * scale, 121 * scale, 34 * scale); ctx.bezierCurveTo(130 * scale, 29 * scale, 130 * scale, 34 * scale, 130 * scale, 42 * scale); ctx.bezierCurveTo(131 * scale, 57 * scale, 128 * scale, 61 * scale, 129 * scale, 63 * scale); ctx.bezierCurveTo(124 * scale, 62 * scale, 124 * scale, 62 * scale, 119 * scale, 61 * scale); ctx.bezierCurveTo(119 * scale, 56 * scale, 120 * scale, 61 * scale, 118 * scale, 52 * scale); ctx.bezierCurveTo(115 * scale, 55 * scale, 111 * scale, 59 * scale, 111 * scale, 58 * scale); ctx.bezierCurveTo(110 * scale, 54 * scale, 109 * scale, 57 * scale, 109 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 return can; } function create_hurt_fox_winter(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 161 * scale; can.height = 190 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9 * scale, 93 * scale); ctx.bezierCurveTo(17 * scale, 95 * scale, 19 * scale, 95 * scale, 21 * scale, 95 * scale); ctx.bezierCurveTo(9 * scale, 83 * scale, 17 * scale, 93 * scale, 4 * scale, 76 * scale); ctx.bezierCurveTo(11 * scale, 75 * scale, 11 * scale, 75 * scale, 18 * scale, 75 * scale); ctx.bezierCurveTo(13 * scale, 67 * scale, 13 * scale, 67 * scale, 7 * scale, 59 * scale); ctx.bezierCurveTo(14 * scale, 59 * scale, 14 * scale, 59 * scale, 21 * scale, 59 * scale); ctx.bezierCurveTo(46 * scale, 35 * scale, 35 * scale, 45 * scale, 49 * scale, 31 * scale); ctx.bezierCurveTo(53 * scale, 24 * scale, 51 * scale, 21 * scale, 51 * scale, 16 * scale); ctx.bezierCurveTo(63 * scale, 23 * scale, 63 * scale, 24 * scale, 69 * scale, 29 * scale); ctx.bezierCurveTo(76 * scale, 7 * scale, 75 * scale, 11 * scale, 76 * scale, 6 * scale); ctx.bezierCurveTo(81 * scale, 12 * scale, 84 * scale, 18 * scale, 89 * scale, 27 * scale); ctx.bezierCurveTo(95 * scale, 25 * scale, 100 * scale, 16 * scale, 105 * scale, 14 * scale); ctx.bezierCurveTo(103 * scale, 25 * scale, 111 * scale, 33 * scale, 110 * scale, 34 * scale); ctx.bezierCurveTo(123 * scale, 48 * scale, 123 * scale, 48 * scale, 136 * scale, 62 * scale); ctx.bezierCurveTo(142 * scale, 60 * scale, 147 * scale, 59 * scale, 155 * scale, 58 * scale); ctx.bezierCurveTo(147 * scale, 65 * scale, 147 * scale, 65 * scale, 139 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 73 * scale, 145 * scale, 73 * scale, 151 * scale, 73 * scale); ctx.bezierCurveTo(145 * scale, 80 * scale, 145 * scale, 80 * scale, 138 * scale, 87 * scale); ctx.bezierCurveTo(144 * scale, 88 * scale, 144 * scale, 88 * scale, 150 * scale, 89 * scale); ctx.bezierCurveTo(125 * scale, 103 * scale, 125 * scale, 125 * scale, 113 * scale, 141 * scale); ctx.bezierCurveTo(92 * scale, 178 * scale, 85 * scale, 177 * scale, 76 * scale, 178 * scale); ctx.bezierCurveTo(64 * scale, 179 * scale, 51 * scale, 164 * scale, 35 * scale, 131 * scale); ctx.bezierCurveTo(18 * scale, 95 * scale, 13 * scale, 99 * scale, 8 * scale, 93 * scale); ctx.closePath(); fill_path(ctx, color, color, 4 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25 * scale, 63 * scale); ctx.bezierCurveTo(16 * scale, 58 * scale, 17 * scale, 51 * scale, 17 * scale, 33 * scale); ctx.bezierCurveTo(19 * scale, 12 * scale, 21 * scale, 12 * scale, 32 * scale, 17 * scale); ctx.bezierCurveTo(63 * scale, 31 * scale, 66 * scale, 45 * scale, 66 * scale, 54 * scale); fill_path(ctx, color, color, 4 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(91 * scale, 53 * scale); ctx.bezierCurveTo(91 * scale, 40 * scale, 98 * scale, 33 * scale, 121 * scale, 20 * scale); ctx.bezierCurveTo(137 * scale, 12 * scale, 137 * scale, 16 * scale, 139 * scale, 27 * scale); ctx.bezierCurveTo(141 * scale, 49 * scale, 140 * scale, 57 * scale, 134 * scale, 64 * scale); fill_path(ctx, color, color, 4 * scale); //#000000 return can; } function create_polar_bear(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 147 * scale; can.height = 172 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 50 * scale); ctx.bezierCurveTo(15 * scale, 16 * scale, 49 * scale, 6 * scale, 67 * scale, 6 * scale); ctx.bezierCurveTo(121 * scale, 3 * scale, 128 * scale, 32 * scale, 135 * scale, 48 * scale); ctx.bezierCurveTo(146 * scale, 96 * scale, 124 * scale, 131 * scale, 96 * scale, 135 * scale); ctx.bezierCurveTo(96 * scale, 158 * scale, 79 * scale, 156 * scale, 75 * scale, 156 * scale); ctx.bezierCurveTo(50 * scale, 154 * scale, 53 * scale, 150 * scale, 52 * scale, 135 * scale); ctx.bezierCurveTo(2 * scale, 127 * scale, 3 * scale, 87 * scale, 8 * scale, 50 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #000000 ctx.translate(0, -8 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 50 * scale); ctx.bezierCurveTo(15 * scale, 16 * scale, 49 * scale, 6 * scale, 67 * scale, 6 * scale); ctx.bezierCurveTo(121 * scale, 3 * scale, 128 * scale, 32 * scale, 135 * scale, 48 * scale); ctx.bezierCurveTo(146 * scale, 96 * scale, 124 * scale, 131 * scale, 96 * scale, 135 * scale); ctx.bezierCurveTo(96 * scale, 158 * scale, 79 * scale, 156 * scale, 75 * scale, 156 * scale); ctx.bezierCurveTo(50 * scale, 154 * scale, 53 * scale, 150 * scale, 52 * scale, 135 * scale); ctx.bezierCurveTo(2 * scale, 127 * scale, 3 * scale, 87 * scale, 8 * scale, 50 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 57 * scale); ctx.bezierCurveTo(2 * scale, 50 * scale, 5 * scale, 22 * scale, 24 * scale, 22 * scale); ctx.bezierCurveTo(41 * scale, 21 * scale, 54 * scale, 32 * scale, 55 * scale, 48 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#38e33e #5ad24b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 47 * scale); ctx.bezierCurveTo(94 * scale, 24 * scale, 116 * scale, 21 * scale, 120 * scale, 20 * scale); ctx.bezierCurveTo(144 * scale, 17 * scale, 146 * scale, 52 * scale, 133 * scale, 58 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#38e33e #5ad24b circle(ctx, 51 * scale, 91 * scale, 9 * scale); fill_path(ctx, color[3]); //#38e33e circle(ctx, 95 * scale, 91 * scale, 9 * scale); fill_path(ctx, color[3]); //#38e33e circle(ctx, 91 * scale, 89 * scale, 4 * scale); fill_path(ctx, color[4]); //#894c37 circle(ctx, 47 * scale, 89 * scale, 4 * scale); fill_path(ctx, color[4]); //#894c37 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54 * scale, 133 * scale); ctx.bezierCurveTo(56 * scale, 108 * scale, 64 * scale, 99 * scale, 73 * scale, 98 * scale); ctx.bezierCurveTo(86 * scale, 97 * scale, 91 * scale, 119 * scale, 93 * scale, 133 * scale); ctx.bezierCurveTo(94 * scale, 155 * scale, 90 * scale, 150 * scale, 74 * scale, 155 * scale); ctx.bezierCurveTo(50 * scale, 152 * scale, 55 * scale, 145 * scale, 54 * scale, 134 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#de694c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65.25 * scale, 135 * scale); ctx.bezierCurveTo(75.25 * scale, 128 * scale, 83.25 * scale, 133 * scale, 83.25 * scale, 138 * scale); ctx.bezierCurveTo(88.25 * scale, 148 * scale, 61.25 * scale, 149 * scale, 64.25 * scale, 137 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#d06626 #5ad24b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(74 * scale, 145 * scale); ctx.bezierCurveTo(74 * scale, 148 * scale, 74 * scale, 148 * scale, 74 * scale, 151 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 2 * scale); //#d06626 #5ad24b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(19 * scale, 58 * scale); ctx.bezierCurveTo(10 * scale, 38 * scale, 18 * scale, 33 * scale, 28 * scale, 34 * scale); ctx.bezierCurveTo(41 * scale, 39 * scale, 45 * scale, 45 * scale, 50 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#843614 #5ad24b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 51 * scale); ctx.bezierCurveTo(106 * scale, 36 * scale, 119 * scale, 31 * scale, 128 * scale, 36 * scale); ctx.bezierCurveTo(137 * scale, 49 * scale, 128 * scale, 58 * scale, 128 * scale, 60 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#843614 #5ad24b return can; } function create_hurt_polar_bear(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 147 * scale; can.height = 172 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(8 * scale, 50 * scale); ctx.bezierCurveTo(15 * scale, 16 * scale, 49 * scale, 6 * scale, 67 * scale, 6 * scale); ctx.bezierCurveTo(121 * scale, 3 * scale, 128 * scale, 32 * scale, 135 * scale, 48 * scale); ctx.bezierCurveTo(146 * scale, 96 * scale, 124 * scale, 131 * scale, 96 * scale, 135 * scale); ctx.bezierCurveTo(96 * scale, 158 * scale, 79 * scale, 156 * scale, 75 * scale, 156 * scale); ctx.bezierCurveTo(50 * scale, 154 * scale, 53 * scale, 150 * scale, 52 * scale, 135 * scale); ctx.bezierCurveTo(2 * scale, 127 * scale, 3 * scale, 87 * scale, 8 * scale, 50 * scale); ctx.closePath(); fill_path(ctx, color, color, 4 * scale); //#000000 #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(14 * scale, 57 * scale); ctx.bezierCurveTo(2 * scale, 50 * scale, 5 * scale, 22 * scale, 24 * scale, 22 * scale); ctx.bezierCurveTo(41 * scale, 21 * scale, 54 * scale, 32 * scale, 55 * scale, 48 * scale); fill_path(ctx, color, color, 4 * scale); //#38e33e #5ad24b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 47 * scale); ctx.bezierCurveTo(94 * scale, 24 * scale, 116 * scale, 21 * scale, 120 * scale, 20 * scale); ctx.bezierCurveTo(144 * scale, 17 * scale, 146 * scale, 52 * scale, 133 * scale, 58 * scale); fill_path(ctx, color, color, 4 * scale); //#38e33e #5ad24b return can; } function create_dragon(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 271 * scale; can.height = 366 * scale; ctx.globalAlpha = 0.5; ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 99 * scale); ctx.bezierCurveTo(186 * scale, 123 * scale, 199 * scale, 152 * scale, 209 * scale, 169 * scale); ctx.bezierCurveTo(228 * scale, 205 * scale, 224 * scale, 245 * scale, 190 * scale, 276 * scale); ctx.bezierCurveTo(161 * scale, 296 * scale, 99 * scale, 292 * scale, 79 * scale, 274 * scale); ctx.bezierCurveTo(49 * scale, 253 * scale, 47 * scale, 214 * scale, 50 * scale, 197 * scale); ctx.bezierCurveTo(61 * scale, 143 * scale, 102 * scale, 113 * scale, 131 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 270 * scale); ctx.bezierCurveTo(79 * scale, 280 * scale, 77 * scale, 280 * scale, 78 * scale, 287 * scale); ctx.bezierCurveTo(78 * scale, 290 * scale, 83 * scale, 291 * scale, 82 * scale, 299 * scale); ctx.bezierCurveTo(81 * scale, 301 * scale, 87 * scale, 301 * scale, 92 * scale, 314 * scale); ctx.bezierCurveTo(94 * scale, 319 * scale, 100 * scale, 321 * scale, 107 * scale, 320 * scale); ctx.bezierCurveTo(111 * scale, 323 * scale, 114 * scale, 324 * scale, 119 * scale, 320 * scale); ctx.bezierCurveTo(137 * scale, 321 * scale, 146 * scale, 323 * scale, 139 * scale, 320 * scale); ctx.bezierCurveTo(141 * scale, 324 * scale, 150 * scale, 324 * scale, 153 * scale, 320 * scale); ctx.bezierCurveTo(168 * scale, 319 * scale, 171 * scale, 316 * scale, 173 * scale, 307 * scale); ctx.bezierCurveTo(180 * scale, 305 * scale, 180 * scale, 301 * scale, 178 * scale, 296 * scale); ctx.bezierCurveTo(183 * scale, 296 * scale, 185 * scale, 289 * scale, 188 * scale, 279 * scale); ctx.bezierCurveTo(171 * scale, 286 * scale, 149 * scale, 290 * scale, 132 * scale, 289 * scale); ctx.bezierCurveTo(101 * scale, 290 * scale, 86 * scale, 280 * scale, 74 * scale, 271 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 252 * scale); ctx.bezierCurveTo(85 * scale, 294 * scale, 96 * scale, 314 * scale, 103 * scale, 314 * scale); ctx.bezierCurveTo(106 * scale, 316 * scale, 151 * scale, 314 * scale, 156 * scale, 314 * scale); ctx.bezierCurveTo(169 * scale, 317 * scale, 182 * scale, 285 * scale, 191 * scale, 256 * scale); ctx.bezierCurveTo(134.5 * scale, 254 * scale, 134.5 * scale, 254 * scale, 78 * scale, 252 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 257 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 146 * scale, 268 * scale, 179 * scale, 261 * scale); ctx.bezierCurveTo(190 * scale, 258 * scale, 187 * scale, 266 * scale, 178 * scale, 272 * scale); ctx.bezierCurveTo(160 * scale, 284 * scale, 123 * scale, 282 * scale, 100 * scale, 277 * scale); ctx.bezierCurveTo(73 * scale, 260 * scale, 79 * scale, 257 * scale, 84 * scale, 257 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 65 * scale); ctx.bezierCurveTo(133 * scale, 45 * scale, 136 * scale, 42 * scale, 141 * scale, 55 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 164 * scale, 117 * scale, 175 * scale, 134 * scale); ctx.bezierCurveTo(203 * scale, 181 * scale, 207 * scale, 182 * scale, 208 * scale, 215 * scale); ctx.bezierCurveTo(206 * scale, 240 * scale, 205 * scale, 246 * scale, 184 * scale, 258 * scale); ctx.bezierCurveTo(161 * scale, 267 * scale, 131 * scale, 272 * scale, 86 * scale, 258 * scale); ctx.bezierCurveTo(67 * scale, 252 * scale, 68 * scale, 239 * scale, 64 * scale, 216 * scale); ctx.bezierCurveTo(62 * scale, 194 * scale, 72 * scale, 169 * scale, 92 * scale, 142 * scale); ctx.bezierCurveTo(106 * scale, 121 * scale, 114 * scale, 101 * scale, 125 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37 * scale); ctx.bezierCurveTo(116 * scale, 28 * scale, 119 * scale, 27 * scale, 126 * scale, 37 * scale); ctx.bezierCurveTo(134 * scale, 48 * scale, 134 * scale, 49 * scale, 132 * scale, 59 * scale); ctx.bezierCurveTo(131 * scale, 67 * scale, 127 * scale, 65 * scale, 120 * scale, 56 * scale); ctx.bezierCurveTo(114 * scale, 49 * scale, 113 * scale, 43 * scale, 115 * scale, 38 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146 * scale, 34 * scale); ctx.bezierCurveTo(152 * scale, 28 * scale, 155 * scale, 27 * scale, 157 * scale, 39 * scale); ctx.bezierCurveTo(157 * scale, 45 * scale, 157 * scale, 49 * scale, 150 * scale, 56 * scale); ctx.bezierCurveTo(141 * scale, 66 * scale, 138 * scale, 66 * scale, 138 * scale, 57 * scale); ctx.bezierCurveTo(137 * scale, 50 * scale, 137 * scale, 47 * scale, 141 * scale, 42 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 69 * scale); ctx.bezierCurveTo(148 * scale, 56 * scale, 156 * scale, 50 * scale, 158 * scale, 58 * scale); ctx.bezierCurveTo(159 * scale, 64 * scale, 160 * scale, 67 * scale, 153 * scale, 77 * scale); ctx.bezierCurveTo(148 * scale, 83 * scale, 145 * scale, 84 * scale, 143 * scale, 77 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149 * scale, 92 * scale); ctx.bezierCurveTo(149 * scale, 89 * scale, 151 * scale, 84 * scale, 156 * scale, 79 * scale); ctx.bezierCurveTo(161 * scale, 73 * scale, 163 * scale, 78 * scale, 162 * scale, 86 * scale); ctx.bezierCurveTo(161 * scale, 91 * scale, 155 * scale, 99 * scale, 152 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 61 * scale); ctx.bezierCurveTo(114 * scale, 51 * scale, 117 * scale, 51 * scale, 124 * scale, 64 * scale); ctx.bezierCurveTo(128 * scale, 68 * scale, 128 * scale, 76 * scale, 126 * scale, 79 * scale); ctx.bezierCurveTo(123 * scale, 84 * scale, 122 * scale, 82 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(112 * scale, 67 * scale, 115 * scale, 74 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(111 * scale, 68 * scale, 111 * scale, 66 * scale, 111 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 81 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 112 * scale, 73 * scale, 118 * scale, 84 * scale); ctx.bezierCurveTo(122 * scale, 88 * scale, 122 * scale, 93 * scale, 121 * scale, 98 * scale); ctx.bezierCurveTo(114 * scale, 98 * scale, 113 * scale, 98 * scale, 109 * scale, 90 * scale); ctx.bezierCurveTo(107 * scale, 87 * scale, 106 * scale, 85 * scale, 107 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 99 * scale); ctx.bezierCurveTo(186 * scale, 123 * scale, 199 * scale, 152 * scale, 209 * scale, 169 * scale); ctx.bezierCurveTo(228 * scale, 205 * scale, 224 * scale, 245 * scale, 190 * scale, 276 * scale); ctx.bezierCurveTo(161 * scale, 296 * scale, 99 * scale, 292 * scale, 79 * scale, 274 * scale); ctx.bezierCurveTo(49 * scale, 253 * scale, 47 * scale, 214 * scale, 50 * scale, 197 * scale); ctx.bezierCurveTo(61 * scale, 143 * scale, 102 * scale, 113 * scale, 131 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 270 * scale); ctx.bezierCurveTo(79 * scale, 280 * scale, 77 * scale, 280 * scale, 78 * scale, 287 * scale); ctx.bezierCurveTo(78 * scale, 290 * scale, 83 * scale, 291 * scale, 82 * scale, 299 * scale); ctx.bezierCurveTo(81 * scale, 301 * scale, 87 * scale, 301 * scale, 92 * scale, 314 * scale); ctx.bezierCurveTo(94 * scale, 319 * scale, 100 * scale, 321 * scale, 107 * scale, 320 * scale); ctx.bezierCurveTo(111 * scale, 323 * scale, 114 * scale, 324 * scale, 119 * scale, 320 * scale); ctx.bezierCurveTo(137 * scale, 321 * scale, 146 * scale, 323 * scale, 139 * scale, 320 * scale); ctx.bezierCurveTo(141 * scale, 324 * scale, 150 * scale, 324 * scale, 153 * scale, 320 * scale); ctx.bezierCurveTo(168 * scale, 319 * scale, 171 * scale, 316 * scale, 173 * scale, 307 * scale); ctx.bezierCurveTo(180 * scale, 305 * scale, 180 * scale, 301 * scale, 178 * scale, 296 * scale); ctx.bezierCurveTo(183 * scale, 296 * scale, 185 * scale, 289 * scale, 188 * scale, 279 * scale); ctx.bezierCurveTo(171 * scale, 286 * scale, 149 * scale, 290 * scale, 132 * scale, 289 * scale); ctx.bezierCurveTo(101 * scale, 290 * scale, 86 * scale, 280 * scale, 74 * scale, 271 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 252 * scale); ctx.bezierCurveTo(85 * scale, 294 * scale, 96 * scale, 314 * scale, 103 * scale, 314 * scale); ctx.bezierCurveTo(106 * scale, 316 * scale, 151 * scale, 314 * scale, 156 * scale, 314 * scale); ctx.bezierCurveTo(169 * scale, 317 * scale, 182 * scale, 285 * scale, 191 * scale, 256 * scale); ctx.bezierCurveTo(134.5 * scale, 254 * scale, 134.5 * scale, 254 * scale, 78 * scale, 252 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 257 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 146 * scale, 268 * scale, 179 * scale, 261 * scale); ctx.bezierCurveTo(190 * scale, 258 * scale, 187 * scale, 266 * scale, 178 * scale, 272 * scale); ctx.bezierCurveTo(160 * scale, 284 * scale, 123 * scale, 282 * scale, 100 * scale, 277 * scale); ctx.bezierCurveTo(73 * scale, 260 * scale, 79 * scale, 257 * scale, 84 * scale, 257 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 65 * scale); ctx.bezierCurveTo(133 * scale, 45 * scale, 136 * scale, 42 * scale, 141 * scale, 55 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 164 * scale, 117 * scale, 175 * scale, 134 * scale); ctx.bezierCurveTo(203 * scale, 181 * scale, 207 * scale, 182 * scale, 208 * scale, 215 * scale); ctx.bezierCurveTo(206 * scale, 240 * scale, 205 * scale, 246 * scale, 184 * scale, 258 * scale); ctx.bezierCurveTo(161 * scale, 267 * scale, 131 * scale, 272 * scale, 86 * scale, 258 * scale); ctx.bezierCurveTo(67 * scale, 252 * scale, 68 * scale, 239 * scale, 64 * scale, 216 * scale); ctx.bezierCurveTo(62 * scale, 194 * scale, 72 * scale, 169 * scale, 92 * scale, 142 * scale); ctx.bezierCurveTo(106 * scale, 121 * scale, 114 * scale, 101 * scale, 125 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37 * scale); ctx.bezierCurveTo(116 * scale, 28 * scale, 119 * scale, 27 * scale, 126 * scale, 37 * scale); ctx.bezierCurveTo(134 * scale, 48 * scale, 134 * scale, 49 * scale, 132 * scale, 59 * scale); ctx.bezierCurveTo(131 * scale, 67 * scale, 127 * scale, 65 * scale, 120 * scale, 56 * scale); ctx.bezierCurveTo(114 * scale, 49 * scale, 113 * scale, 43 * scale, 115 * scale, 38 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146 * scale, 34 * scale); ctx.bezierCurveTo(152 * scale, 28 * scale, 155 * scale, 27 * scale, 157 * scale, 39 * scale); ctx.bezierCurveTo(157 * scale, 45 * scale, 157 * scale, 49 * scale, 150 * scale, 56 * scale); ctx.bezierCurveTo(141 * scale, 66 * scale, 138 * scale, 66 * scale, 138 * scale, 57 * scale); ctx.bezierCurveTo(137 * scale, 50 * scale, 137 * scale, 47 * scale, 141 * scale, 42 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 69 * scale); ctx.bezierCurveTo(148 * scale, 56 * scale, 156 * scale, 50 * scale, 158 * scale, 58 * scale); ctx.bezierCurveTo(159 * scale, 64 * scale, 160 * scale, 67 * scale, 153 * scale, 77 * scale); ctx.bezierCurveTo(148 * scale, 83 * scale, 145 * scale, 84 * scale, 143 * scale, 77 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149 * scale, 92 * scale); ctx.bezierCurveTo(149 * scale, 89 * scale, 151 * scale, 84 * scale, 156 * scale, 79 * scale); ctx.bezierCurveTo(161 * scale, 73 * scale, 163 * scale, 78 * scale, 162 * scale, 86 * scale); ctx.bezierCurveTo(161 * scale, 91 * scale, 155 * scale, 99 * scale, 152 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 61 * scale); ctx.bezierCurveTo(114 * scale, 51 * scale, 117 * scale, 51 * scale, 124 * scale, 64 * scale); ctx.bezierCurveTo(128 * scale, 68 * scale, 128 * scale, 76 * scale, 126 * scale, 79 * scale); ctx.bezierCurveTo(123 * scale, 84 * scale, 122 * scale, 82 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(112 * scale, 67 * scale, 115 * scale, 74 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(111 * scale, 68 * scale, 111 * scale, 66 * scale, 111 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 81 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 112 * scale, 73 * scale, 118 * scale, 84 * scale); ctx.bezierCurveTo(122 * scale, 88 * scale, 122 * scale, 93 * scale, 121 * scale, 98 * scale); ctx.bezierCurveTo(114 * scale, 98 * scale, 113 * scale, 98 * scale, 109 * scale, 90 * scale); ctx.bezierCurveTo(107 * scale, 87 * scale, 106 * scale, 85 * scale, 107 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 99 * scale); ctx.bezierCurveTo(186 * scale, 123 * scale, 199 * scale, 152 * scale, 209 * scale, 169 * scale); ctx.bezierCurveTo(228 * scale, 205 * scale, 224 * scale, 245 * scale, 190 * scale, 276 * scale); ctx.bezierCurveTo(161 * scale, 296 * scale, 99 * scale, 292 * scale, 79 * scale, 274 * scale); ctx.bezierCurveTo(49 * scale, 253 * scale, 47 * scale, 214 * scale, 50 * scale, 197 * scale); ctx.bezierCurveTo(61 * scale, 143 * scale, 102 * scale, 113 * scale, 131 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 270 * scale); ctx.bezierCurveTo(79 * scale, 280 * scale, 77 * scale, 280 * scale, 78 * scale, 287 * scale); ctx.bezierCurveTo(78 * scale, 290 * scale, 83 * scale, 291 * scale, 82 * scale, 299 * scale); ctx.bezierCurveTo(81 * scale, 301 * scale, 87 * scale, 301 * scale, 92 * scale, 314 * scale); ctx.bezierCurveTo(94 * scale, 319 * scale, 100 * scale, 321 * scale, 107 * scale, 320 * scale); ctx.bezierCurveTo(111 * scale, 323 * scale, 114 * scale, 324 * scale, 119 * scale, 320 * scale); ctx.bezierCurveTo(137 * scale, 321 * scale, 146 * scale, 323 * scale, 139 * scale, 320 * scale); ctx.bezierCurveTo(141 * scale, 324 * scale, 150 * scale, 324 * scale, 153 * scale, 320 * scale); ctx.bezierCurveTo(168 * scale, 319 * scale, 171 * scale, 316 * scale, 173 * scale, 307 * scale); ctx.bezierCurveTo(180 * scale, 305 * scale, 180 * scale, 301 * scale, 178 * scale, 296 * scale); ctx.bezierCurveTo(183 * scale, 296 * scale, 185 * scale, 289 * scale, 188 * scale, 279 * scale); ctx.bezierCurveTo(171 * scale, 286 * scale, 149 * scale, 290 * scale, 132 * scale, 289 * scale); ctx.bezierCurveTo(101 * scale, 290 * scale, 86 * scale, 280 * scale, 74 * scale, 271 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 252 * scale); ctx.bezierCurveTo(85 * scale, 294 * scale, 96 * scale, 314 * scale, 103 * scale, 314 * scale); ctx.bezierCurveTo(106 * scale, 316 * scale, 151 * scale, 314 * scale, 156 * scale, 314 * scale); ctx.bezierCurveTo(169 * scale, 317 * scale, 182 * scale, 285 * scale, 191 * scale, 256 * scale); ctx.bezierCurveTo(134.5 * scale, 254 * scale, 134.5 * scale, 254 * scale, 78 * scale, 252 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 257 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 146 * scale, 268 * scale, 179 * scale, 261 * scale); ctx.bezierCurveTo(190 * scale, 258 * scale, 187 * scale, 266 * scale, 178 * scale, 272 * scale); ctx.bezierCurveTo(160 * scale, 284 * scale, 123 * scale, 282 * scale, 100 * scale, 277 * scale); ctx.bezierCurveTo(73 * scale, 260 * scale, 79 * scale, 257 * scale, 84 * scale, 257 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f circle(ctx, 102 * scale, 269 * scale, 11 * scale); fill_path(ctx, color[3]); //#9e793d #5f461f circle(ctx, 98 * scale, 266 * scale, 5 * scale); fill_path(ctx, color[6]); //#9e793d #5f461f circle(ctx, 168 * scale, 269 * scale, 11 * scale); fill_path(ctx, color[3]); //#9e793d #5f461f circle(ctx, 164 * scale, 266 * scale, 5 * scale); fill_path(ctx, color[6]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 65 * scale); ctx.bezierCurveTo(133 * scale, 45 * scale, 136 * scale, 42 * scale, 141 * scale, 55 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 164 * scale, 117 * scale, 175 * scale, 134 * scale); ctx.bezierCurveTo(203 * scale, 181 * scale, 207 * scale, 182 * scale, 208 * scale, 215 * scale); ctx.bezierCurveTo(206 * scale, 240 * scale, 205 * scale, 246 * scale, 184 * scale, 258 * scale); ctx.bezierCurveTo(161 * scale, 267 * scale, 131 * scale, 272 * scale, 86 * scale, 258 * scale); ctx.bezierCurveTo(67 * scale, 252 * scale, 68 * scale, 239 * scale, 64 * scale, 216 * scale); ctx.bezierCurveTo(62 * scale, 194 * scale, 72 * scale, 169 * scale, 92 * scale, 142 * scale); ctx.bezierCurveTo(106 * scale, 121 * scale, 114 * scale, 101 * scale, 125 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 235 * scale); ctx.bezierCurveTo(118 * scale, 258 * scale, 137 * scale, 268 * scale, 148 * scale, 246 * scale); ctx.bezierCurveTo(156 * scale, 228 * scale, 152 * scale, 169 * scale, 150 * scale, 140 * scale); ctx.bezierCurveTo(147 * scale, 87 * scale, 143 * scale, 69 * scale, 142 * scale, 60 * scale); ctx.bezierCurveTo(136 * scale, 44 * scale, 132 * scale, 43 * scale, 127 * scale, 62 * scale); ctx.bezierCurveTo(119 * scale, 116 * scale, 119 * scale, 140 * scale, 116 * scale, 166 * scale); ctx.bezierCurveTo(113 * scale, 202 * scale, 113 * scale, 223 * scale, 115 * scale, 233 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(132 * scale, 219 * scale); ctx.bezierCurveTo(140 * scale, 229 * scale, 142 * scale, 231 * scale, 145 * scale, 237 * scale); ctx.bezierCurveTo(145 * scale, 245 * scale, 139 * scale, 249 * scale, 133 * scale, 249 * scale); ctx.bezierCurveTo(123 * scale, 248 * scale, 123 * scale, 243 * scale, 121 * scale, 239 * scale); ctx.bezierCurveTo(126 * scale, 227 * scale, 129 * scale, 223 * scale, 132 * scale, 219 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 179 * scale); ctx.bezierCurveTo(140 * scale, 188.5 * scale, 140 * scale, 188.5 * scale, 147 * scale, 198 * scale); ctx.bezierCurveTo(148 * scale, 209 * scale, 142 * scale, 214 * scale, 133 * scale, 214 * scale); ctx.bezierCurveTo(121 * scale, 211 * scale, 121 * scale, 207 * scale, 120 * scale, 200 * scale); ctx.bezierCurveTo(126.5 * scale, 189.5 * scale, 126.5 * scale, 189.5 * scale, 133 * scale, 179 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 143 * scale); ctx.bezierCurveTo(139 * scale, 151.5 * scale, 139 * scale, 151.5 * scale, 145 * scale, 160 * scale); ctx.bezierCurveTo(143 * scale, 167 * scale, 140 * scale, 170 * scale, 134 * scale, 170 * scale); ctx.bezierCurveTo(128 * scale, 169 * scale, 124 * scale, 167 * scale, 123 * scale, 161 * scale); ctx.bezierCurveTo(128 * scale, 152 * scale, 128 * scale, 152 * scale, 133 * scale, 143 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 115 * scale); ctx.bezierCurveTo(137.5 * scale, 121.5 * scale, 137.5 * scale, 121.5 * scale, 142 * scale, 128 * scale); ctx.bezierCurveTo(141 * scale, 133 * scale, 138 * scale, 135 * scale, 133 * scale, 135 * scale); ctx.bezierCurveTo(129 * scale, 135 * scale, 125 * scale, 132 * scale, 125 * scale, 129 * scale); ctx.bezierCurveTo(129 * scale, 122 * scale, 129 * scale, 122 * scale, 133 * scale, 115 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 94 * scale); ctx.bezierCurveTo(136.5 * scale, 98.5 * scale, 136.5 * scale, 98.5 * scale, 140 * scale, 103 * scale); ctx.bezierCurveTo(139 * scale, 109 * scale, 137 * scale, 109 * scale, 133 * scale, 110 * scale); ctx.bezierCurveTo(127 * scale, 108 * scale, 129 * scale, 107 * scale, 127 * scale, 105 * scale); ctx.bezierCurveTo(130 * scale, 99.5 * scale, 130 * scale, 99.5 * scale, 133 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130 * scale, 279 * scale); ctx.bezierCurveTo(136.5 * scale, 287.5 * scale, 136.5 * scale, 287.5 * scale, 143 * scale, 296 * scale); ctx.bezierCurveTo(143 * scale, 302 * scale, 139 * scale, 309 * scale, 131 * scale, 308 * scale); ctx.bezierCurveTo(123 * scale, 306 * scale, 121 * scale, 303 * scale, 120 * scale, 297 * scale); ctx.bezierCurveTo(125.5 * scale, 288.5 * scale, 125.5 * scale, 288.5 * scale, 131 * scale, 280 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(147 * scale, 303 * scale); ctx.bezierCurveTo(151 * scale, 311 * scale, 151 * scale, 319 * scale, 147 * scale, 321 * scale); ctx.bezierCurveTo(138 * scale, 320 * scale, 145 * scale, 308 * scale, 147 * scale, 303 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 303 * scale); ctx.bezierCurveTo(115 * scale, 312 * scale, 118 * scale, 319 * scale, 115 * scale, 319 * scale); ctx.bezierCurveTo(112 * scale, 324 * scale, 109 * scale, 318 * scale, 109 * scale, 314 * scale); ctx.bezierCurveTo(109 * scale, 308 * scale, 112 * scale, 303 * scale, 115 * scale, 303 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(89 * scale, 280 * scale); ctx.bezierCurveTo(83 * scale, 279 * scale, 80 * scale, 281 * scale, 81 * scale, 286 * scale); ctx.bezierCurveTo(83 * scale, 290 * scale, 84 * scale, 290 * scale, 87 * scale, 286 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(94 * scale, 290 * scale); ctx.bezierCurveTo(93 * scale, 294 * scale, 90 * scale, 303 * scale, 86 * scale, 298 * scale); ctx.bezierCurveTo(84 * scale, 295 * scale, 84 * scale, 291 * scale, 89 * scale, 291 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(163 * scale, 295 * scale); ctx.bezierCurveTo(175 * scale, 294 * scale, 176 * scale, 296 * scale, 175 * scale, 301 * scale); ctx.bezierCurveTo(174 * scale, 305 * scale, 171 * scale, 305 * scale, 166 * scale, 300 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(172 * scale, 286 * scale); ctx.bezierCurveTo(180 * scale, 285 * scale, 181 * scale, 285 * scale, 180 * scale, 291 * scale); ctx.bezierCurveTo(176 * scale, 295 * scale, 174 * scale, 294 * scale, 172 * scale, 286 * scale); ctx.closePath(); fill_path(ctx, color[8]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37 * scale); ctx.bezierCurveTo(116 * scale, 28 * scale, 119 * scale, 27 * scale, 126 * scale, 37 * scale); ctx.bezierCurveTo(134 * scale, 48 * scale, 134 * scale, 49 * scale, 132 * scale, 59 * scale); ctx.bezierCurveTo(131 * scale, 67 * scale, 127 * scale, 65 * scale, 120 * scale, 56 * scale); ctx.bezierCurveTo(114 * scale, 49 * scale, 113 * scale, 43 * scale, 115 * scale, 38 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146 * scale, 34 * scale); ctx.bezierCurveTo(152 * scale, 28 * scale, 155 * scale, 27 * scale, 157 * scale, 39 * scale); ctx.bezierCurveTo(157 * scale, 45 * scale, 157 * scale, 49 * scale, 150 * scale, 56 * scale); ctx.bezierCurveTo(141 * scale, 66 * scale, 138 * scale, 66 * scale, 138 * scale, 57 * scale); ctx.bezierCurveTo(137 * scale, 50 * scale, 137 * scale, 47 * scale, 141 * scale, 42 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 69 * scale); ctx.bezierCurveTo(148 * scale, 56 * scale, 156 * scale, 50 * scale, 158 * scale, 58 * scale); ctx.bezierCurveTo(159 * scale, 64 * scale, 160 * scale, 67 * scale, 153 * scale, 77 * scale); ctx.bezierCurveTo(148 * scale, 83 * scale, 145 * scale, 84 * scale, 143 * scale, 77 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149 * scale, 92 * scale); ctx.bezierCurveTo(149 * scale, 89 * scale, 151 * scale, 84 * scale, 156 * scale, 79 * scale); ctx.bezierCurveTo(161 * scale, 73 * scale, 163 * scale, 78 * scale, 162 * scale, 86 * scale); ctx.bezierCurveTo(161 * scale, 91 * scale, 155 * scale, 99 * scale, 152 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 61 * scale); ctx.bezierCurveTo(114 * scale, 51 * scale, 117 * scale, 51 * scale, 124 * scale, 64 * scale); ctx.bezierCurveTo(128 * scale, 68 * scale, 128 * scale, 76 * scale, 126 * scale, 79 * scale); ctx.bezierCurveTo(123 * scale, 84 * scale, 122 * scale, 82 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(112 * scale, 67 * scale, 115 * scale, 74 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(111 * scale, 68 * scale, 111 * scale, 66 * scale, 111 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 81 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 112 * scale, 73 * scale, 118 * scale, 84 * scale); ctx.bezierCurveTo(122 * scale, 88 * scale, 122 * scale, 93 * scale, 121 * scale, 98 * scale); ctx.bezierCurveTo(114 * scale, 98 * scale, 113 * scale, 98 * scale, 109 * scale, 90 * scale); ctx.bezierCurveTo(107 * scale, 87 * scale, 106 * scale, 85 * scale, 107 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[7]); //#9e793d #5f461f return can; } function create_hurt_dragon(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 271 * scale; can.height = 366 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(133 * scale, 99 * scale); ctx.bezierCurveTo(186 * scale, 123 * scale, 199 * scale, 152 * scale, 209 * scale, 169 * scale); ctx.bezierCurveTo(228 * scale, 205 * scale, 224 * scale, 245 * scale, 190 * scale, 276 * scale); ctx.bezierCurveTo(161 * scale, 296 * scale, 99 * scale, 292 * scale, 79 * scale, 274 * scale); ctx.bezierCurveTo(49 * scale, 253 * scale, 47 * scale, 214 * scale, 50 * scale, 197 * scale); ctx.bezierCurveTo(61 * scale, 143 * scale, 102 * scale, 113 * scale, 131 * scale, 99 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(73 * scale, 270 * scale); ctx.bezierCurveTo(79 * scale, 280 * scale, 77 * scale, 280 * scale, 78 * scale, 287 * scale); ctx.bezierCurveTo(78 * scale, 290 * scale, 83 * scale, 291 * scale, 82 * scale, 299 * scale); ctx.bezierCurveTo(81 * scale, 301 * scale, 87 * scale, 301 * scale, 92 * scale, 314 * scale); ctx.bezierCurveTo(94 * scale, 319 * scale, 100 * scale, 321 * scale, 107 * scale, 320 * scale); ctx.bezierCurveTo(111 * scale, 323 * scale, 114 * scale, 324 * scale, 119 * scale, 320 * scale); ctx.bezierCurveTo(137 * scale, 321 * scale, 146 * scale, 323 * scale, 139 * scale, 320 * scale); ctx.bezierCurveTo(141 * scale, 324 * scale, 150 * scale, 324 * scale, 153 * scale, 320 * scale); ctx.bezierCurveTo(168 * scale, 319 * scale, 171 * scale, 316 * scale, 173 * scale, 307 * scale); ctx.bezierCurveTo(180 * scale, 305 * scale, 180 * scale, 301 * scale, 178 * scale, 296 * scale); ctx.bezierCurveTo(183 * scale, 296 * scale, 185 * scale, 289 * scale, 188 * scale, 279 * scale); ctx.bezierCurveTo(171 * scale, 286 * scale, 149 * scale, 290 * scale, 132 * scale, 289 * scale); ctx.bezierCurveTo(101 * scale, 290 * scale, 86 * scale, 280 * scale, 74 * scale, 271 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(76 * scale, 252 * scale); ctx.bezierCurveTo(85 * scale, 294 * scale, 96 * scale, 314 * scale, 103 * scale, 314 * scale); ctx.bezierCurveTo(106 * scale, 316 * scale, 151 * scale, 314 * scale, 156 * scale, 314 * scale); ctx.bezierCurveTo(169 * scale, 317 * scale, 182 * scale, 285 * scale, 191 * scale, 256 * scale); ctx.bezierCurveTo(134.5 * scale, 254 * scale, 134.5 * scale, 254 * scale, 78 * scale, 252 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 257 * scale); ctx.bezierCurveTo(122 * scale, 273 * scale, 146 * scale, 268 * scale, 179 * scale, 261 * scale); ctx.bezierCurveTo(190 * scale, 258 * scale, 187 * scale, 266 * scale, 178 * scale, 272 * scale); ctx.bezierCurveTo(160 * scale, 284 * scale, 123 * scale, 282 * scale, 100 * scale, 277 * scale); ctx.bezierCurveTo(73 * scale, 260 * scale, 79 * scale, 257 * scale, 84 * scale, 257 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125 * scale, 65 * scale); ctx.bezierCurveTo(133 * scale, 45 * scale, 136 * scale, 42 * scale, 141 * scale, 55 * scale); ctx.bezierCurveTo(151 * scale, 96 * scale, 164 * scale, 117 * scale, 175 * scale, 134 * scale); ctx.bezierCurveTo(203 * scale, 181 * scale, 207 * scale, 182 * scale, 208 * scale, 215 * scale); ctx.bezierCurveTo(206 * scale, 240 * scale, 205 * scale, 246 * scale, 184 * scale, 258 * scale); ctx.bezierCurveTo(161 * scale, 267 * scale, 131 * scale, 272 * scale, 86 * scale, 258 * scale); ctx.bezierCurveTo(67 * scale, 252 * scale, 68 * scale, 239 * scale, 64 * scale, 216 * scale); ctx.bezierCurveTo(62 * scale, 194 * scale, 72 * scale, 169 * scale, 92 * scale, 142 * scale); ctx.bezierCurveTo(106 * scale, 121 * scale, 114 * scale, 101 * scale, 125 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37 * scale); ctx.bezierCurveTo(116 * scale, 28 * scale, 119 * scale, 27 * scale, 126 * scale, 37 * scale); ctx.bezierCurveTo(134 * scale, 48 * scale, 134 * scale, 49 * scale, 132 * scale, 59 * scale); ctx.bezierCurveTo(131 * scale, 67 * scale, 127 * scale, 65 * scale, 120 * scale, 56 * scale); ctx.bezierCurveTo(114 * scale, 49 * scale, 113 * scale, 43 * scale, 115 * scale, 38 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146 * scale, 34 * scale); ctx.bezierCurveTo(152 * scale, 28 * scale, 155 * scale, 27 * scale, 157 * scale, 39 * scale); ctx.bezierCurveTo(157 * scale, 45 * scale, 157 * scale, 49 * scale, 150 * scale, 56 * scale); ctx.bezierCurveTo(141 * scale, 66 * scale, 138 * scale, 66 * scale, 138 * scale, 57 * scale); ctx.bezierCurveTo(137 * scale, 50 * scale, 137 * scale, 47 * scale, 141 * scale, 42 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 69 * scale); ctx.bezierCurveTo(148 * scale, 56 * scale, 156 * scale, 50 * scale, 158 * scale, 58 * scale); ctx.bezierCurveTo(159 * scale, 64 * scale, 160 * scale, 67 * scale, 153 * scale, 77 * scale); ctx.bezierCurveTo(148 * scale, 83 * scale, 145 * scale, 84 * scale, 143 * scale, 77 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(149 * scale, 92 * scale); ctx.bezierCurveTo(149 * scale, 89 * scale, 151 * scale, 84 * scale, 156 * scale, 79 * scale); ctx.bezierCurveTo(161 * scale, 73 * scale, 163 * scale, 78 * scale, 162 * scale, 86 * scale); ctx.bezierCurveTo(161 * scale, 91 * scale, 155 * scale, 99 * scale, 152 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 61 * scale); ctx.bezierCurveTo(114 * scale, 51 * scale, 117 * scale, 51 * scale, 124 * scale, 64 * scale); ctx.bezierCurveTo(128 * scale, 68 * scale, 128 * scale, 76 * scale, 126 * scale, 79 * scale); ctx.bezierCurveTo(123 * scale, 84 * scale, 122 * scale, 82 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(112 * scale, 67 * scale, 115 * scale, 74 * scale, 115 * scale, 74 * scale); ctx.bezierCurveTo(111 * scale, 68 * scale, 111 * scale, 66 * scale, 111 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 81 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 112 * scale, 73 * scale, 118 * scale, 84 * scale); ctx.bezierCurveTo(122 * scale, 88 * scale, 122 * scale, 93 * scale, 121 * scale, 98 * scale); ctx.bezierCurveTo(114 * scale, 98 * scale, 113 * scale, 98 * scale, 109 * scale, 90 * scale); ctx.bezierCurveTo(107 * scale, 87 * scale, 106 * scale, 85 * scale, 107 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f return can; } function create_wingleft(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 85 * scale; can.height = 145 * scale; ctx.translate(-20 * scale, -95 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 105 * scale); ctx.bezierCurveTo(52 * scale, 119 * scale, 64 * scale, 137 * scale, 71 * scale, 146 * scale); ctx.bezierCurveTo(71 * scale, 161 * scale, 74 * scale, 169 * scale, 79 * scale, 179 * scale); ctx.bezierCurveTo(68 * scale, 192 * scale, 70 * scale, 204 * scale, 69 * scale, 216 * scale); ctx.bezierCurveTo(50 * scale, 189.5 * scale, 50 * scale, 189.5 * scale, 31 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 106 * scale); ctx.bezierCurveTo(49 * scale, 90 * scale, 58 * scale, 104 * scale, 51 * scale, 121 * scale); ctx.bezierCurveTo(45 * scale, 143 * scale, 41 * scale, 151 * scale, 37 * scale, 162 * scale); ctx.bezierCurveTo(48 * scale, 180 * scale, 58 * scale, 188 * scale, 76 * scale, 205 * scale); ctx.bezierCurveTo(104 * scale, 209 * scale, 105 * scale, 229 * scale, 92 * scale, 235 * scale); ctx.bezierCurveTo(76 * scale, 239 * scale, 75 * scale, 232 * scale, 56 * scale, 213 * scale); ctx.bezierCurveTo(31 * scale, 187 * scale, 28 * scale, 176 * scale, 23 * scale, 162 * scale); ctx.bezierCurveTo(38 * scale, 131 * scale, 40 * scale, 120 * scale, 44 * scale, 106 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 159 * scale); ctx.bezierCurveTo(46 * scale, 157 * scale, 59 * scale, 152 * scale, 68 * scale, 148 * scale); ctx.bezierCurveTo(63 * scale, 155 * scale, 52 * scale, 160 * scale, 44 * scale, 164 * scale); ctx.bezierCurveTo(59 * scale, 169 * scale, 66 * scale, 174 * scale, 75 * scale, 178 * scale); ctx.bezierCurveTo(58 * scale, 178 * scale, 49 * scale, 175 * scale, 37 * scale, 174 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#9e793d #5f461f return can; } function create_hurt_wingleft(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 85 * scale; can.height = 145 * scale; ctx.translate(-20 * scale, -95 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(50 * scale, 105 * scale); ctx.bezierCurveTo(52 * scale, 119 * scale, 64 * scale, 137 * scale, 71 * scale, 146 * scale); ctx.bezierCurveTo(71 * scale, 161 * scale, 74 * scale, 169 * scale, 79 * scale, 179 * scale); ctx.bezierCurveTo(68 * scale, 192 * scale, 70 * scale, 204 * scale, 69 * scale, 216 * scale); ctx.bezierCurveTo(50 * scale, 189.5 * scale, 50 * scale, 189.5 * scale, 31 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 106 * scale); ctx.bezierCurveTo(49 * scale, 90 * scale, 58 * scale, 104 * scale, 51 * scale, 121 * scale); ctx.bezierCurveTo(45 * scale, 143 * scale, 41 * scale, 151 * scale, 37 * scale, 162 * scale); ctx.bezierCurveTo(48 * scale, 180 * scale, 58 * scale, 188 * scale, 76 * scale, 205 * scale); ctx.bezierCurveTo(104 * scale, 209 * scale, 105 * scale, 229 * scale, 92 * scale, 235 * scale); ctx.bezierCurveTo(76 * scale, 239 * scale, 75 * scale, 232 * scale, 56 * scale, 213 * scale); ctx.bezierCurveTo(31 * scale, 187 * scale, 28 * scale, 176 * scale, 23 * scale, 162 * scale); ctx.bezierCurveTo(38 * scale, 131 * scale, 40 * scale, 120 * scale, 44 * scale, 106 * scale); ctx.closePath(); fill_path(ctx, color, color, 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 159 * scale); ctx.bezierCurveTo(46 * scale, 157 * scale, 59 * scale, 152 * scale, 68 * scale, 148 * scale); ctx.bezierCurveTo(63 * scale, 155 * scale, 52 * scale, 160 * scale, 44 * scale, 164 * scale); ctx.bezierCurveTo(59 * scale, 169 * scale, 66 * scale, 174 * scale, 75 * scale, 178 * scale); ctx.bezierCurveTo(58 * scale, 178 * scale, 49 * scale, 175 * scale, 37 * scale, 174 * scale); ctx.closePath(); fill_path(ctx, color); //#9e793d #5f461f return can; } function create_wingright(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 85 * scale; can.height = 145 * scale; ctx.translate(-165 * scale, -95 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217 * scale, 103 * scale); ctx.bezierCurveTo(209 * scale, 129 * scale, 203 * scale, 137 * scale, 195 * scale, 146 * scale); ctx.bezierCurveTo(195 * scale, 159 * scale, 194 * scale, 167 * scale, 189 * scale, 178 * scale); ctx.bezierCurveTo(193 * scale, 186 * scale, 196 * scale, 195 * scale, 198 * scale, 216 * scale); ctx.bezierCurveTo(217.5 * scale, 189.5 * scale, 217.5 * scale, 189.5 * scale, 237 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(231 * scale, 163 * scale); ctx.bezierCurveTo(221 * scale, 139 * scale, 218 * scale, 128 * scale, 215 * scale, 114 * scale); ctx.bezierCurveTo(213 * scale, 102 * scale, 220 * scale, 92 * scale, 222 * scale, 107 * scale); ctx.bezierCurveTo(224 * scale, 118 * scale, 233 * scale, 138 * scale, 244 * scale, 161 * scale); ctx.bezierCurveTo(235 * scale, 188 * scale, 224 * scale, 198 * scale, 204 * scale, 221 * scale); ctx.bezierCurveTo(190 * scale, 233 * scale, 190 * scale, 235 * scale, 180 * scale, 235 * scale); ctx.bezierCurveTo(167 * scale, 235 * scale, 164 * scale, 216 * scale, 175 * scale, 211 * scale); ctx.bezierCurveTo(176 * scale, 208 * scale, 181 * scale, 207 * scale, 191 * scale, 205 * scale); ctx.bezierCurveTo(213 * scale, 186 * scale, 218 * scale, 180 * scale, 230 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(234 * scale, 154 * scale); ctx.bezierCurveTo(227 * scale, 156 * scale, 222 * scale, 156 * scale, 199 * scale, 148 * scale); ctx.bezierCurveTo(201 * scale, 151 * scale, 216 * scale, 159 * scale, 224 * scale, 162 * scale); ctx.bezierCurveTo(209 * scale, 169.5 * scale, 209 * scale, 169.5 * scale, 194 * scale, 177 * scale); ctx.bezierCurveTo(213.5 * scale, 175 * scale, 213.5 * scale, 175 * scale, 233 * scale, 173 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#9e793d #5f461f return can; } function create_hurt_wingright(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 85 * scale; can.height = 145 * scale; ctx.translate(-165 * scale, -95 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217 * scale, 103 * scale); ctx.bezierCurveTo(209 * scale, 129 * scale, 203 * scale, 137 * scale, 195 * scale, 146 * scale); ctx.bezierCurveTo(195 * scale, 159 * scale, 194 * scale, 167 * scale, 189 * scale, 178 * scale); ctx.bezierCurveTo(193 * scale, 186 * scale, 196 * scale, 195 * scale, 198 * scale, 216 * scale); ctx.bezierCurveTo(217.5 * scale, 189.5 * scale, 217.5 * scale, 189.5 * scale, 237 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(231 * scale, 163 * scale); ctx.bezierCurveTo(221 * scale, 139 * scale, 218 * scale, 128 * scale, 215 * scale, 114 * scale); ctx.bezierCurveTo(213 * scale, 102 * scale, 220 * scale, 92 * scale, 222 * scale, 107 * scale); ctx.bezierCurveTo(224 * scale, 118 * scale, 233 * scale, 138 * scale, 244 * scale, 161 * scale); ctx.bezierCurveTo(235 * scale, 188 * scale, 224 * scale, 198 * scale, 204 * scale, 221 * scale); ctx.bezierCurveTo(190 * scale, 233 * scale, 190 * scale, 235 * scale, 180 * scale, 235 * scale); ctx.bezierCurveTo(167 * scale, 235 * scale, 164 * scale, 216 * scale, 175 * scale, 211 * scale); ctx.bezierCurveTo(176 * scale, 208 * scale, 181 * scale, 207 * scale, 191 * scale, 205 * scale); ctx.bezierCurveTo(213 * scale, 186 * scale, 218 * scale, 180 * scale, 230 * scale, 163 * scale); ctx.closePath(); fill_path(ctx, color, color, 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(234 * scale, 154 * scale); ctx.bezierCurveTo(227 * scale, 156 * scale, 222 * scale, 156 * scale, 199 * scale, 148 * scale); ctx.bezierCurveTo(201 * scale, 151 * scale, 216 * scale, 159 * scale, 224 * scale, 162 * scale); ctx.bezierCurveTo(209 * scale, 169.5 * scale, 209 * scale, 169.5 * scale, 194 * scale, 177 * scale); ctx.bezierCurveTo(213.5 * scale, 175 * scale, 213.5 * scale, 175 * scale, 233 * scale, 173 * scale); ctx.closePath(); fill_path(ctx, color); //#9e793d #5f461f return can; } function create_explorer_hat(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 187 * scale; can.height = 119 * scale; /*SHADOW_HAT*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(0, 3); ctx.moveTo(53 * scale, 45 * scale); ctx.bezierCurveTo(3 * scale, 60 * scale, 11 * scale, 72 * scale, 19 * scale, 81 * scale); ctx.bezierCurveTo(28 * scale, 82 * scale, 24 * scale, 81 * scale, 29 * scale, 82 * scale); ctx.bezierCurveTo(26 * scale, 87 * scale, 28 * scale, 84 * scale, 28 * scale, 87 * scale); ctx.bezierCurveTo(63 * scale, 101 * scale, 92 * scale, 100 * scale, 138 * scale, 93 * scale); ctx.bezierCurveTo(172 * scale, 87 * scale, 180 * scale, 72 * scale, 168 * scale, 62 * scale); ctx.bezierCurveTo(154 * scale, 51 * scale, 150 * scale, 50 * scale, 148 * scale, 49 * scale); ctx.bezierCurveTo(132 * scale, 42 * scale, 90 * scale, 40 * scale, 55 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#adadad #bdbdbd /*HAT*/ ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(0, -3); ctx.moveTo(53 * scale, 45 * scale); ctx.bezierCurveTo(3 * scale, 60 * scale, 11 * scale, 72 * scale, 19 * scale, 81 * scale); ctx.bezierCurveTo(28 * scale, 82 * scale, 24 * scale, 81 * scale, 29 * scale, 82 * scale); ctx.bezierCurveTo(26 * scale, 87 * scale, 28 * scale, 84 * scale, 28 * scale, 87 * scale); ctx.bezierCurveTo(63 * scale, 101 * scale, 92 * scale, 100 * scale, 138 * scale, 93 * scale); ctx.bezierCurveTo(172 * scale, 87 * scale, 180 * scale, 72 * scale, 168 * scale, 62 * scale); ctx.bezierCurveTo(154 * scale, 51 * scale, 150 * scale, 50 * scale, 148 * scale, 49 * scale); ctx.bezierCurveTo(132 * scale, 42 * scale, 90 * scale, 40 * scale, 55 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#adadad #bdbdbd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(151 * scale, 60 * scale); ctx.bezierCurveTo(140 * scale, 36 * scale, 137 * scale, 32 * scale, 124 * scale, 29 * scale); ctx.bezierCurveTo(98 * scale, 22 * scale, 80 * scale, 24 * scale, 62 * scale, 28 * scale); ctx.bezierCurveTo(42 * scale, 35 * scale, 38 * scale, 46 * scale, 34 * scale, 58 * scale); ctx.bezierCurveTo(53 * scale, 74 * scale, 76 * scale, 76 * scale, 91 * scale, 78 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#adadad #bdbdbd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(37 * scale, 53 * scale); ctx.bezierCurveTo(30 * scale, 56 * scale, 29 * scale, 67 * scale, 30 * scale, 68 * scale); ctx.bezierCurveTo(94 * scale, 108 * scale, 150 * scale, 76 * scale, 155 * scale, 70 * scale); ctx.bezierCurveTo(154 * scale, 60 * scale, 151 * scale, 54 * scale, 149 * scale, 53 * scale); ctx.bezierCurveTo(101 * scale, 74 * scale, 66 * scale, 66 * scale, 37 * scale, 53 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4 * scale); //#ec905e #bdbdbd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(100 * scale, 36 * scale); ctx.bezierCurveTo(92 * scale, 25 * scale, 86 * scale, 28 * scale, 82 * scale, 34 * scale); ctx.bezierCurveTo(88 * scale, 40 * scale, 93 * scale, 40 * scale, 98 * scale, 36 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#ec905e #bdbdbd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 43 * scale); ctx.bezierCurveTo(69 * scale, 46 * scale, 67 * scale, 52 * scale, 69 * scale, 58 * scale); fill_path(ctx, undefined, color[1], 4 * scale); //#ec905e #bdbdbd circle(ctx, 58 * scale, 50 * scale, 5 * scale); fill_path(ctx, color[4]); //#ec905e circle(ctx, 43 * scale, 65 * scale, 5 * scale); fill_path(ctx, color[4]); //#ec905e circle(ctx, 58 * scale, 73 * scale, 5 * scale); fill_path(ctx, color[4]); //#ec905e circle(ctx, 58 * scale, 50 * scale, 2 * scale); fill_path(ctx, color[5]); //#54e53a circle(ctx, 43 * scale, 65 * scale, 2 * scale); fill_path(ctx, color[5]); //#54e53a circle(ctx, 58 * scale, 73 * scale, 2 * scale); fill_path(ctx, color[5]); //#54e53a return can; } function create_wooden_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 180 * scale; can.height = 120 * scale; ctx.translate(-65 * scale, -35 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(150.5 * scale, 63.84375 * scale); round_rect(ctx, -67 * scale, -16.5 * scale, 134 * scale, 33 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80.5 * scale, 75.34375 * scale); ctx.bezierCurveTo(83 * scale, 106.34375 * scale, 83 * scale, 106.34375 * scale, 85.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(93 * scale, 135.84375 * scale, 93 * scale, 135.84375 * scale, 100.5 * scale, 134.34375 * scale); ctx.bezierCurveTo(99.5 * scale, 100.84375 * scale, 99.5 * scale, 100.84375 * scale, 98.5 * scale, 67.34375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(206.5 * scale, 71.34375 * scale); ctx.bezierCurveTo(203.5 * scale, 104.34375 * scale, 203.5 * scale, 104.34375 * scale, 200.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(208.5 * scale, 137.34375 * scale, 208.5 * scale, 137.34375 * scale, 216.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(219 * scale, 102.84375 * scale, 219 * scale, 102.84375 * scale, 221.5 * scale, 68.34375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(136.5 * scale, 75.34375 * scale); ctx.bezierCurveTo(139 * scale, 94.34375 * scale, 139 * scale, 94.34375 * scale, 141.5 * scale, 113.34375 * scale); ctx.bezierCurveTo(149.5 * scale, 115.34375 * scale, 149.5 * scale, 115.34375 * scale, 157.5 * scale, 117.34375 * scale); ctx.bezierCurveTo(162 * scale, 97.34375 * scale, 162 * scale, 97.34375 * scale, 166.5 * scale, 77.34375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#73583e #493425 ctx.save(); ctx.translate(152.5 * scale, 80.84375 * scale); ctx.rotate(3.12); round_rect(ctx, -73 * scale, -20.5 * scale, 146 * scale, 41 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#73583e #493425 ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(150.5 * scale, 63.84375 * scale); round_rect(ctx, -67 * scale, -16.5 * scale, 134 * scale, 33 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80.5 * scale, 75.34375 * scale); ctx.bezierCurveTo(83 * scale, 106.34375 * scale, 83 * scale, 106.34375 * scale, 85.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(93 * scale, 135.84375 * scale, 93 * scale, 135.84375 * scale, 100.5 * scale, 134.34375 * scale); ctx.bezierCurveTo(99.5 * scale, 100.84375 * scale, 99.5 * scale, 100.84375 * scale, 98.5 * scale, 67.34375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(206.5 * scale, 71.34375 * scale); ctx.bezierCurveTo(203.5 * scale, 104.34375 * scale, 203.5 * scale, 104.34375 * scale, 200.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(208.5 * scale, 137.34375 * scale, 208.5 * scale, 137.34375 * scale, 216.5 * scale, 137.34375 * scale); ctx.bezierCurveTo(219 * scale, 102.84375 * scale, 219 * scale, 102.84375 * scale, 221.5 * scale, 68.34375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(136.5 * scale, 75.34375 * scale); ctx.bezierCurveTo(139 * scale, 94.34375 * scale, 139 * scale, 94.34375 * scale, 141.5 * scale, 113.34375 * scale); ctx.bezierCurveTo(149.5 * scale, 115.34375 * scale, 149.5 * scale, 115.34375 * scale, 157.5 * scale, 117.34375 * scale); ctx.bezierCurveTo(162 * scale, 97.34375 * scale, 162 * scale, 97.34375 * scale, 166.5 * scale, 77.34375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#73583e #493425 ctx.save(); ctx.translate(152.5 * scale, 80.84375 * scale); ctx.rotate(3.12); round_rect(ctx, -73 * scale, -20.5 * scale, 146 * scale, 41 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#73583e #493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(83.5 * scale, 73.34375 * scale); ctx.bezierCurveTo(93.5 * scale, 70.34375 * scale, 105.5 * scale, 70.34375 * scale, 124.5 * scale, 72.34375 * scale); ctx.bezierCurveTo(132.5 * scale, 78.34375 * scale, 162.5 * scale, 80.34375 * scale, 176.5 * scale, 76.34375 * scale); ctx.bezierCurveTo(194.5 * scale, 69.34375 * scale, 192.5 * scale, 68.34375 * scale, 199.5 * scale, 63.34375 * scale); ctx.bezierCurveTo(204.5 * scale, 63.34375 * scale, 204.5 * scale, 63.34375 * scale, 209.5 * scale, 63.34375 * scale); ctx.bezierCurveTo(153.5 * scale, 82.34375 * scale, 157.5 * scale, 85.34375 * scale, 209.5 * scale, 63.34375 * scale); ctx.bezierCurveTo(194.5 * scale, 88.34375 * scale, 162.5 * scale, 87.34375 * scale, 149.5 * scale, 88.34375 * scale); ctx.bezierCurveTo(129.5 * scale, 81.34375 * scale, 103.5 * scale, 75.34375 * scale, 83.5 * scale, 82.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(137.5 * scale, 65.34375 * scale); ctx.bezierCurveTo(150.5 * scale, 76.34375 * scale, 170.5 * scale, 71.34375 * scale, 174.5 * scale, 65.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(221.5 * scale, 85.34375 * scale); ctx.bezierCurveTo(211.5 * scale, 79.34375 * scale, 191.5 * scale, 88.34375 * scale, 181.5 * scale, 96.34375 * scale); ctx.bezierCurveTo(201.5 * scale, 96.34375 * scale, 201.5 * scale, 96.34375 * scale, 221.5 * scale, 96.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.5 * scale, 89.34375 * scale); ctx.bezierCurveTo(102.5 * scale, 87.34375 * scale, 112.5 * scale, 88.34375 * scale, 119.5 * scale, 97.34375 * scale); ctx.bezierCurveTo(102 * scale, 98.34375 * scale, 102 * scale, 98.34375 * scale, 84.5 * scale, 99.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(208.5 * scale, 104.34375 * scale); ctx.bezierCurveTo(208.5 * scale, 110.34375 * scale, 208.5 * scale, 110.34375 * scale, 208.5 * scale, 116.34375 * scale); ctx.bezierCurveTo(211.5 * scale, 110.34375 * scale, 211.5 * scale, 110.34375 * scale, 214.5 * scale, 104.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.5 * scale, 117.34375 * scale); ctx.bezierCurveTo(92 * scale, 118.84375 * scale, 92 * scale, 118.84375 * scale, 96.5 * scale, 120.34375 * scale); ctx.bezierCurveTo(93 * scale, 123.84375 * scale, 93 * scale, 123.84375 * scale, 89.5 * scale, 127.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); // ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.5 * scale, 51.34375 * scale); ctx.bezierCurveTo(122.5 * scale, 54.34375 * scale, 122.5 * scale, 54.34375 * scale, 137.5 * scale, 57.34375 * scale); ctx.bezierCurveTo(118 * scale, 57.34375 * scale, 118 * scale, 57.34375 * scale, 98.5 * scale, 57.34375 * scale); ctx.bezierCurveTo(94.5 * scale, 54.84375 * scale, 94.5 * scale, 54.84375 * scale, 90.5 * scale, 52.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(170.5 * scale, 52.34375 * scale); ctx.bezierCurveTo(179.5 * scale, 51.84375 * scale, 179.5 * scale, 51.84375 * scale, 188.5 * scale, 51.34375 * scale); ctx.bezierCurveTo(187.5 * scale, 53.84375 * scale, 187.5 * scale, 53.84375 * scale, 186.5 * scale, 56.34375 * scale); ctx.bezierCurveTo(177 * scale, 56.34375 * scale, 177 * scale, 56.34375 * scale, 167.5 * scale, 56.34375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#7d6144 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80.5 * scale, 69.34375 * scale); ctx.bezierCurveTo(86.5 * scale, 70.34375 * scale, 86.5 * scale, 70.34375 * scale, 92.5 * scale, 71.34375 * scale); ctx.bezierCurveTo(86 * scale, 73.34375 * scale, 86 * scale, 73.34375 * scale, 79.5 * scale, 75.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(222.5 * scale, 75.34375 * scale); ctx.bezierCurveTo(214.5 * scale, 76.34375 * scale, 214.5 * scale, 76.34375 * scale, 206.5 * scale, 77.34375 * scale); ctx.bezierCurveTo(216.5 * scale, 79.34375 * scale, 216.5 * scale, 79.34375 * scale, 226.5 * scale, 81.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 100.34375 * scale); ctx.bezierCurveTo(128 * scale, 97.34375 * scale, 128 * scale, 97.34375 * scale, 139.5 * scale, 94.34375 * scale); ctx.bezierCurveTo(140 * scale, 96.84375 * scale, 140 * scale, 96.84375 * scale, 140.5 * scale, 99.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(112.5 * scale, 48.34375 * scale); ctx.bezierCurveTo(115.5 * scale, 50.84375 * scale, 115.5 * scale, 50.84375 * scale, 118.5 * scale, 53.34375 * scale); ctx.bezierCurveTo(131 * scale, 50.84375 * scale, 131 * scale, 50.84375 * scale, 143.5 * scale, 48.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(216.5 * scale, 109.34375 * scale); ctx.bezierCurveTo(213 * scale, 114.84375 * scale, 213 * scale, 114.84375 * scale, 209.5 * scale, 120.34375 * scale); ctx.bezierCurveTo(212 * scale, 118.84375 * scale, 212 * scale, 118.84375 * scale, 214.5 * scale, 117.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86.5 * scale, 133.34375 * scale); ctx.bezierCurveTo(89 * scale, 127.34375 * scale, 89 * scale, 127.34375 * scale, 91.5 * scale, 121.34375 * scale); ctx.bezierCurveTo(92.5 * scale, 127.34375 * scale, 92.5 * scale, 127.34375 * scale, 93.5 * scale, 133.34375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#493425 return can; } function create_stone_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 175 * scale; can.height = 106 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 67 * scale); ctx.bezierCurveTo(55 * scale, 80 * scale, 126 * scale, 74 * scale, 144 * scale, 68 * scale); ctx.bezierCurveTo(144.5 * scale, 75 * scale, 144.5 * scale, 75 * scale, 145 * scale, 82 * scale); ctx.bezierCurveTo(114 * scale, 94 * scale, 47 * scale, 91 * scale, 28 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#5d7857 #5f461f ctx.globalAlpha = 1; ctx.translate(0, -8 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 75 * scale); ctx.bezierCurveTo(143 * scale, 51 * scale, 133 * scale, 29 * scale, 100 * scale, 27 * scale); ctx.bezierCurveTo(52 * scale, 21 * scale, 37 * scale, 37 * scale, 31 * scale, 54 * scale); ctx.bezierCurveTo(23 * scale, 78 * scale, 28 * scale, 77 * scale, 36 * scale, 79 * scale); ctx.bezierCurveTo(80 * scale, 87 * scale, 120 * scale, 81 * scale, 145 * scale, 76 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(38 * scale, 46 * scale); ctx.bezierCurveTo(52 * scale, 37 * scale, 69 * scale, 36 * scale, 85 * scale, 36 * scale); ctx.bezierCurveTo(118 * scale, 38 * scale, 129 * scale, 42 * scale, 137 * scale, 48 * scale); ctx.bezierCurveTo(135 * scale, 45 * scale, 135 * scale, 45 * scale, 133 * scale, 42 * scale); ctx.bezierCurveTo(124 * scale, 32 * scale, 116 * scale, 28 * scale, 88 * scale, 25 * scale); ctx.bezierCurveTo(47 * scale, 28 * scale, 40 * scale, 32 * scale, 36 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#8c343c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 75 * scale); ctx.bezierCurveTo(143 * scale, 51 * scale, 133 * scale, 29 * scale, 100 * scale, 27 * scale); ctx.bezierCurveTo(52 * scale, 21 * scale, 37 * scale, 37 * scale, 31 * scale, 54 * scale); ctx.bezierCurveTo(23 * scale, 78 * scale, 28 * scale, 77 * scale, 36 * scale, 79 * scale); ctx.bezierCurveTo(80 * scale, 87 * scale, 120 * scale, 81 * scale, 145 * scale, 76 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 4 * scale); //#9e793d #5f461f ctx.translate(0, -3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 67 * scale); ctx.bezierCurveTo(55 * scale, 80 * scale, 126 * scale, 74 * scale, 144 * scale, 68 * scale); ctx.bezierCurveTo(144.5 * scale, 75 * scale, 144.5 * scale, 75 * scale, 145 * scale, 82 * scale); ctx.bezierCurveTo(114 * scale, 94 * scale, 47 * scale, 91 * scale, 28 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[10], color[10], 4 * scale); //#5d7857 #5f461f ctx.translate(0, 3 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131 * scale, 43 * scale); ctx.bezierCurveTo(145 * scale, 40 * scale, 148 * scale, 32 * scale, 147 * scale, 17 * scale); ctx.bezierCurveTo(166 * scale, 39 * scale, 155 * scale, 62 * scale, 140 * scale, 67 * scale); ctx.bezierCurveTo(128 * scale, 65 * scale, 128 * scale, 52 * scale, 131 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 43 * scale); ctx.bezierCurveTo(30 * scale, 42 * scale, 24 * scale, 33 * scale, 25 * scale, 17 * scale); ctx.bezierCurveTo(7 * scale, 34 * scale, 17 * scale, 63 * scale, 33 * scale, 66 * scale); ctx.bezierCurveTo(45 * scale, 59 * scale, 44 * scale, 53 * scale, 42 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 19 * scale); ctx.bezierCurveTo(24 * scale, 35 * scale, 35 * scale, 42 * scale, 42 * scale, 44 * scale); ctx.bezierCurveTo(43 * scale, 51 * scale, 43 * scale, 48 * scale, 43 * scale, 56 * scale); ctx.bezierCurveTo(25 * scale, 47 * scale, 17 * scale, 36 * scale, 23 * scale, 20 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#8c343c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(148 * scale, 18 * scale); ctx.bezierCurveTo(159 * scale, 44 * scale, 139 * scale, 52 * scale, 130 * scale, 55 * scale); ctx.bezierCurveTo(129 * scale, 48 * scale, 129 * scale, 46 * scale, 131 * scale, 43 * scale); ctx.bezierCurveTo(144 * scale, 37 * scale, 148 * scale, 35 * scale, 147 * scale, 18 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#8c343c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131 * scale, 43 * scale); ctx.bezierCurveTo(145 * scale, 40 * scale, 148 * scale, 32 * scale, 147 * scale, 17 * scale); ctx.bezierCurveTo(166 * scale, 39 * scale, 155 * scale, 62 * scale, 140 * scale, 67 * scale); ctx.bezierCurveTo(128 * scale, 65 * scale, 128 * scale, 52 * scale, 131 * scale, 45 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41 * scale, 43 * scale); ctx.bezierCurveTo(30 * scale, 42 * scale, 24 * scale, 33 * scale, 25 * scale, 17 * scale); ctx.bezierCurveTo(7 * scale, 34 * scale, 17 * scale, 63 * scale, 33 * scale, 66 * scale); ctx.bezierCurveTo(45 * scale, 59 * scale, 44 * scale, 53 * scale, 42 * scale, 44 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 4 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(87 * scale, 34.5 * scale); ctx.rotate(0); round_rect(ctx, -8 * scale, -10.5 * scale, 16 * scale, 21 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[7], color[2], 4 * scale); //#5d7857 #5f461f ctx.save(); ctx.translate(87 * scale, 57 * scale); ctx.rotate(0); round_rect(ctx, -8 * scale, -23 * scale, 16 * scale, 46 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[8], color[2], 4 * scale); //#5d7857 #5f461f circle(ctx, 87 * scale, 39 * scale, 4.123105625617661 * scale); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f circle(ctx, 87 * scale, 60 * scale, 4.242640687119285 * scale); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 67 * scale); ctx.bezierCurveTo(55 * scale, 80 * scale, 126 * scale, 74 * scale, 144 * scale, 68 * scale); ctx.bezierCurveTo(144.5 * scale, 75 * scale, 144.5 * scale, 75 * scale, 145 * scale, 82 * scale); ctx.bezierCurveTo(114 * scale, 94 * scale, 47 * scale, 91 * scale, 28 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[8], color[2], 4 * scale); //#5d7857 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27 * scale, 69 * scale); ctx.bezierCurveTo(13 * scale, 77 * scale, 16 * scale, 74 * scale, 27 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 70 * scale); ctx.bezierCurveTo(149.5 * scale, 72 * scale, 149.5 * scale, 72 * scale, 154 * scale, 74 * scale); ctx.bezierCurveTo(150 * scale, 77 * scale, 150 * scale, 77 * scale, 146 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f circle(ctx, 50 * scale, 80 * scale, 5 * scale); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f circle(ctx, 86.01141357421875 * scale, 81.76705932617188 * scale, 5 * scale); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f circle(ctx, 119.01141357421875 * scale, 80.13069152832031 * scale, 5 * scale); fill_path(ctx, color[9], color[2], 4 * scale); //#5d7857 #5f461f return can; } function create_gold_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 142 * scale; can.height = 118 * scale; ctx.save(); ctx.translate(70.16665649414062 * scale, 38.20831298828125 * scale); round_rect(ctx, -58.5 * scale, -27.5 * scale, 117 * scale, 55 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 4 * scale); //#57f3a6 #60f5a0 ctx.save(); ctx.translate(70 * scale, 42.70831298828125 * scale); round_rect(ctx, -61 * scale, -20 * scale, 122 * scale, 40 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123 * scale, 70.375 * scale); ctx.bezierCurveTo(115 * scale, 99.375 * scale, 119 * scale, 85.375 * scale, 115 * scale, 100.375 * scale); ctx.bezierCurveTo(112 * scale, 116.375 * scale, 117 * scale, 109.375 * scale, 131 * scale, 100.375 * scale); ctx.bezierCurveTo(131 * scale, 83.375 * scale, 131 * scale, 83.375 * scale, 131 * scale, 66.375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(11 * scale, 68.375 * scale); ctx.bezierCurveTo(11.166656494140625 * scale, 84.375 * scale, 9 * scale, 99.375 * scale, 10 * scale, 100.375 * scale); ctx.bezierCurveTo(35 * scale, 113.375 * scale, 27 * scale, 110.375 * scale, 25 * scale, 95.375 * scale); ctx.bezierCurveTo(16 * scale, 68.375 * scale, 17 * scale, 69.375 * scale, 17 * scale, 68.375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46 * scale, 32.375 * scale); ctx.bezierCurveTo(43 * scale, 8.375 * scale, 45 * scale, 7.375 * scale, 56 * scale, 6.375 * scale); ctx.bezierCurveTo(105 * scale, 4.375 * scale, 102 * scale, 6.375 * scale, 97 * scale, 32.375 * scale); ctx.bezierCurveTo(138 * scale, 43.375 * scale, 133 * scale, 45.375 * scale, 133 * scale, 58.375 * scale); ctx.bezierCurveTo(133 * scale, 85.375 * scale, 125 * scale, 74.375 * scale, 111 * scale, 70.375 * scale); ctx.bezierCurveTo(70 * scale, 69.875 * scale, 29 * scale, 69.375 * scale, 29 * scale, 69.375 * scale); ctx.bezierCurveTo(7 * scale, 84.375 * scale, 7 * scale, 70.375 * scale, 7 * scale, 59.375 * scale); ctx.bezierCurveTo(6 * scale, 28.375 * scale, 32 * scale, 39.375 * scale, 44 * scale, 32.375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 circle(ctx, 71 * scale, 44.375 * scale, 16.55294535724685 * scale); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 circle(ctx, 71 * scale, 43.70831298828125 * scale, 8.94427190999916 * scale); fill_path(ctx, color[2], color[1], 4 * scale); //#a1f547 #60f5a0 return can; } function create_diamond_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 142 * scale; can.height = 118 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(111 * scale, 27.3671875 * scale); ctx.bezierCurveTo(128 * scale, 9.3671875 * scale, 125 * scale, 13.3671875 * scale, 126 * scale, 21.3671875 * scale); ctx.bezierCurveTo(126 * scale, 33.3671875 * scale, 119 * scale, 43.3671875 * scale, 118 * scale, 42.3671875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#29d5f8 #3c9ad3 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 23.3671875 * scale); ctx.bezierCurveTo(17 * scale, 15.3671875 * scale, 16 * scale, 14.3671875 * scale, 17 * scale, 20.3671875 * scale); ctx.bezierCurveTo(22 * scale, 33.3671875 * scale, 20 * scale, 27.3671875 * scale, 24 * scale, 34.3671875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#29d5f8 #3c9ad3 ctx.save(); ctx.translate(70.5 * scale, 34.8671875 * scale); ctx.rotate(0); round_rect(ctx, -49.5 * scale, -21.5 * scale, 99 * scale, 43 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 4 * scale); //#29d5f8 #3c9ad3 ctx.save(); ctx.translate(71 * scale, 40.8671875 * scale); ctx.rotate(0); round_rect(ctx, -49 * scale, -12.5 * scale, 98 * scale, 25 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 4 * scale); //#29d5f8 #3c9ad3 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(19.800003051757812 * scale, 75.95625305175781 * scale); ctx.bezierCurveTo(19.300003051757812 * scale, 82.95625305175781 * scale, 19.300003051757812 * scale, 82.95625305175781 * scale, 18.800003051757812 * scale, 89.95625305175781 * scale); ctx.bezierCurveTo(38.80000305175781 * scale, 115.95625305175781 * scale, 37.80000305175781 * scale, 104.95625305175781 * scale, 31.800003051757812 * scale, 91.95625305175781 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#9ef640 #c9c16d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(119.80000305175781 * scale, 75.95625305175781 * scale); ctx.bezierCurveTo(120.80000305175781 * scale, 82.95625305175781 * scale, 120.80000305175781 * scale, 82.95625305175781 * scale, 121.80000305175781 * scale, 89.95625305175781 * scale); ctx.bezierCurveTo(101.80000305175781 * scale, 111.95625305175781 * scale, 99.80000305175781 * scale, 111.95625305175781 * scale, 112.80000305175781 * scale, 81.95625305175781 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#9ef640 #c9c16d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(17.800003051757812 * scale, 49.15625 * scale); ctx.bezierCurveTo(17.800003051757812 * scale, 64.15625 * scale, 17.800003051757812 * scale, 64.15625 * scale, 17.800003051757812 * scale, 79.15625 * scale); ctx.bezierCurveTo(23.300003051757812 * scale, 85.15625 * scale, 23.300003051757812 * scale, 85.15625 * scale, 28.800003051757812 * scale, 91.15625 * scale); ctx.bezierCurveTo(36.80000305175781 * scale, 96.15625 * scale, 32.80000305175781 * scale, 91.15625 * scale, 28.800003051757812 * scale, 77.15625 * scale); ctx.bezierCurveTo(33.80000305175781 * scale, 65.15625 * scale, 33.80000305175781 * scale, 65.15625 * scale, 38.80000305175781 * scale, 53.15625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#9ef640 #c9c16d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123.80000305175781 * scale, 53.95625305175781 * scale); ctx.bezierCurveTo(121.80000305175781 * scale, 77.95625305175781 * scale, 121.80000305175781 * scale, 74.95625305175781 * scale, 121.80000305175781 * scale, 78.95625305175781 * scale); ctx.bezierCurveTo(115.80000305175781 * scale, 84.95625305175781 * scale, 115.80000305175781 * scale, 84.95625305175781 * scale, 109.80000305175781 * scale, 90.95625305175781 * scale); ctx.bezierCurveTo(102.80000305175781 * scale, 93.95625305175781 * scale, 105.80000305175781 * scale, 86.95625305175781 * scale, 110.80000305175781 * scale, 76.95625305175781 * scale); ctx.bezierCurveTo(107.30000305175781 * scale, 65.45625305175781 * scale, 103.80000305175781 * scale, 53.95625305175781 * scale, 103.80000305175781 * scale, 53.95625305175781 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#9ef640 #c9c16d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(18 * scale, 56.3671875 * scale); ctx.bezierCurveTo(70 * scale, 56.8671875 * scale, 70 * scale, 56.8671875 * scale, 122 * scale, 57.3671875 * scale); ctx.bezierCurveTo(137 * scale, 20.3671875 * scale, 137 * scale, 16.3671875 * scale, 126 * scale, 22.3671875 * scale); ctx.bezierCurveTo(115.5 * scale, 34.3671875 * scale, 115.5 * scale, 34.3671875 * scale, 105 * scale, 46.3671875 * scale); ctx.bezierCurveTo(70.5 * scale, 46.3671875 * scale, 70.5 * scale, 46.3671875 * scale, 36 * scale, 46.3671875 * scale); ctx.bezierCurveTo(4 * scale, 14.3671875 * scale, 7 * scale, 18.3671875 * scale, 8 * scale, 27.3671875 * scale); ctx.bezierCurveTo(12.5 * scale, 41.8671875 * scale, 12.5 * scale, 41.8671875 * scale, 17 * scale, 56.3671875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#29d5f8 #3c9ad3 ctx.save(); ctx.translate(68.30000305175781 * scale, 41.45625305175781 * scale); ctx.rotate(0.76); round_rect(ctx, -20.5 * scale, -20.5 * scale, 41 * scale, 41 * scale, 10 * scale); ctx.restore(); fill_path(ctx, undefined, color[5], 4 * scale); //#31f64c ctx.save(); ctx.translate(68.80000305175781 * scale, 44.45625305175781 * scale); ctx.rotate(0.76); round_rect(ctx, -21 * scale, -20.5 * scale, 42 * scale, 41 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 4 * scale); //#fa896a ctx.save(); ctx.translate(69.80000305175781 * scale, 44.556243896484375 * scale); ctx.rotate(0.76); round_rect(ctx, -10 * scale, -10 * scale, 20 * scale, 20 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[6], color[7], 4 * scale); //#9ef640 return can; } function create_amethyst_helmet(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 145 * scale; can.height = 120 * scale; ctx.beginPath(); ctx.scale(0.6, 0.6); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(18 * scale, -8 * scale); ctx.moveTo(101 * scale, 72 * scale); ctx.bezierCurveTo(144 * scale, 69 * scale, 149 * scale, 58 * scale, 162 * scale, 49 * scale); ctx.bezierCurveTo(174 * scale, 31 * scale, 173 * scale, 38 * scale, 172 * scale, 45 * scale); ctx.bezierCurveTo(168 * scale, 73 * scale, 158 * scale, 75 * scale, 152 * scale, 78 * scale); ctx.bezierCurveTo(106 * scale, 89 * scale, 107 * scale, 91 * scale, 107 * scale, 94 * scale); ctx.bezierCurveTo(107 * scale, 100 * scale, 107 * scale, 107 * scale, 107 * scale, 107 * scale); ctx.bezierCurveTo(99 * scale, 112 * scale, 98 * scale, 110 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(94 * scale, 107 * scale, 93 * scale, 107 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(93 * scale, 100 * scale, 93 * scale, 100 * scale, 92 * scale, 94 * scale); ctx.bezierCurveTo(92 * scale, 89 * scale, 90 * scale, 90 * scale, 73 * scale, 86 * scale); ctx.bezierCurveTo(45 * scale, 81 * scale, 40 * scale, 77 * scale, 35 * scale, 68 * scale); ctx.bezierCurveTo(23 * scale, 36 * scale, 28 * scale, 34 * scale, 36 * scale, 46 * scale); ctx.bezierCurveTo(45 * scale, 58 * scale, 83 * scale, 72 * scale, 98 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#92f38f #000000 ctx.beginPath(); ctx.scale(1.1, 1.1); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-9 * scale, 4 * scale); ctx.moveTo(101 * scale, 72 * scale); ctx.bezierCurveTo(144 * scale, 69 * scale, 149 * scale, 58 * scale, 162 * scale, 49 * scale); ctx.bezierCurveTo(174 * scale, 31 * scale, 173 * scale, 38 * scale, 172 * scale, 45 * scale); ctx.bezierCurveTo(168 * scale, 73 * scale, 158 * scale, 75 * scale, 152 * scale, 78 * scale); ctx.bezierCurveTo(106 * scale, 89 * scale, 107 * scale, 91 * scale, 107 * scale, 94 * scale); ctx.bezierCurveTo(107 * scale, 100 * scale, 107 * scale, 107 * scale, 107 * scale, 107 * scale); ctx.bezierCurveTo(99 * scale, 112 * scale, 98 * scale, 110 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(94 * scale, 107 * scale, 93 * scale, 107 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(93 * scale, 100 * scale, 93 * scale, 100 * scale, 92 * scale, 94 * scale); ctx.bezierCurveTo(92 * scale, 89 * scale, 90 * scale, 90 * scale, 73 * scale, 86 * scale); ctx.bezierCurveTo(45 * scale, 81 * scale, 40 * scale, 77 * scale, 35 * scale, 68 * scale); ctx.bezierCurveTo(23 * scale, 36 * scale, 28 * scale, 34 * scale, 36 * scale, 46 * scale); ctx.bezierCurveTo(45 * scale, 58 * scale, 83 * scale, 72 * scale, 98 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#92f38f #000000 ctx.scale(1.1, 1.1); ctx.translate(-9 * scale, 4 * scale); ctx.save(); ctx.translate(100 * scale, 73.06874084472656 * scale); ctx.rotate(0); round_rect(ctx, -61 * scale, -38.5 * scale, 122 * scale, 40 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 4 * scale); //#92f38f #000000 ctx.save(); ctx.translate(100 * scale, 71.36874389648438 * scale); ctx.rotate(0); round_rect(ctx, -60.5 * scale, -18 * scale, 121 * scale, 30 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[3], color[2], 4 * scale); //#92f38f #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(144 * scale, 80 * scale); ctx.bezierCurveTo(152 * scale, 100 * scale, 152 * scale, 101 * scale, 153 * scale, 102 * scale); ctx.bezierCurveTo(159 * scale, 100 * scale, 159 * scale, 100 * scale, 160 * scale, 100 * scale); ctx.bezierCurveTo(161 * scale, 84 * scale, 161 * scale, 84 * scale, 162 * scale, 68 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#92f38f #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(57 * scale, 75 * scale); ctx.bezierCurveTo(48 * scale, 101 * scale, 53 * scale, 89 * scale, 48 * scale, 102 * scale); ctx.bezierCurveTo(44 * scale, 100 * scale, 44 * scale, 100 * scale, 39 * scale, 97 * scale); ctx.bezierCurveTo(39 * scale, 83 * scale, 39 * scale, 83 * scale, 39 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#92f38f #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(101 * scale, 72 * scale); ctx.bezierCurveTo(144 * scale, 69 * scale, 149 * scale, 58 * scale, 162 * scale, 49 * scale); ctx.bezierCurveTo(174 * scale, 31 * scale, 173 * scale, 38 * scale, 172 * scale, 45 * scale); ctx.bezierCurveTo(168 * scale, 73 * scale, 158 * scale, 75 * scale, 152 * scale, 78 * scale); ctx.bezierCurveTo(106 * scale, 89 * scale, 107 * scale, 91 * scale, 107 * scale, 94 * scale); ctx.bezierCurveTo(107 * scale, 100 * scale, 107 * scale, 107 * scale, 107 * scale, 107 * scale); ctx.bezierCurveTo(99 * scale, 112 * scale, 98 * scale, 110 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(94 * scale, 107 * scale, 93 * scale, 107 * scale, 93 * scale, 107 * scale); ctx.bezierCurveTo(93 * scale, 100 * scale, 93 * scale, 100 * scale, 92 * scale, 94 * scale); ctx.bezierCurveTo(92 * scale, 89 * scale, 90 * scale, 90 * scale, 73 * scale, 86 * scale); ctx.bezierCurveTo(45 * scale, 81 * scale, 40 * scale, 77 * scale, 35 * scale, 68 * scale); ctx.bezierCurveTo(23 * scale, 36 * scale, 28 * scale, 34 * scale, 36 * scale, 46 * scale); ctx.bezierCurveTo(45 * scale, 58 * scale, 83 * scale, 72 * scale, 98 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#92f38f #000000 ctx.translate(0, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115.5 * scale, 116.07290649414062 * scale); ctx.bezierCurveTo(159.5 * scale, 99.07290649414062 * scale, 159.5 * scale, 98.07290649414062 * scale, 159.5 * scale, 98.07290649414062 * scale); ctx.bezierCurveTo(155.5 * scale, 116.07290649414062 * scale, 159.5 * scale, 116.07290649414062 * scale, 159.5 * scale, 118.07290649414062 * scale); ctx.bezierCurveTo(147.5 * scale, 130.07290649414062 * scale, 136.5 * scale, 132.07290649414062 * scale, 115.5 * scale, 138.07290649414062 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#9468f2 #7640a3 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39.5 * scale, 96.07290649414062 * scale); ctx.bezierCurveTo(85.5 * scale, 114.07290649414062 * scale, 62.5 * scale, 105.57290649414062 * scale, 85.5 * scale, 115.07290649414062 * scale); ctx.bezierCurveTo(85.5 * scale, 125.57290649414062 * scale, 85.5 * scale, 125.57290649414062 * scale, 85.5 * scale, 136.07290649414062 * scale); ctx.bezierCurveTo(51.5 * scale, 129.07290649414062 * scale, 51.5 * scale, 125.07290649414062 * scale, 41.5 * scale, 118.07290649414062 * scale); ctx.bezierCurveTo(44.5 * scale, 106.07290649414062 * scale, 42.5 * scale, 103.07290649414062 * scale, 40.5 * scale, 96.07290649414062 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#9468f2 #7640a3 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86 * scale, 80 * scale); ctx.bezierCurveTo(97 * scale, 88 * scale, 106 * scale, 84 * scale, 112 * scale, 80 * scale); ctx.bezierCurveTo(112 * scale, 62 * scale, 106 * scale, 59 * scale, 99 * scale, 54 * scale); ctx.bezierCurveTo(86 * scale, 62 * scale, 86 * scale, 73 * scale, 86 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#92f38f #000000 ctx.scale(0.5, 0.5); ctx.translate(100 * scale, 71 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86 * scale, 80 * scale); ctx.bezierCurveTo(97 * scale, 88 * scale, 106 * scale, 84 * scale, 112 * scale, 80 * scale); ctx.bezierCurveTo(112 * scale, 62 * scale, 106 * scale, 59 * scale, 99 * scale, 54 * scale); ctx.bezierCurveTo(86 * scale, 62 * scale, 86 * scale, 73 * scale, 86 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[6], color[2], 4 * scale); //#92f38f #000000 return can; } function create_book(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.save(); ctx.translate(204 * scale, 195.0833282470703 * scale); ctx.rotate(10.16); round_rect(ctx, -97.5 * scale, -134.5 * scale, 195 * scale, 269 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 8 * scale); //#511f00 #2f1300 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58.5 * scale, 226.5833282470703 * scale); ctx.bezierCurveTo(120.5 * scale, 281.5833282470703 * scale, 120.5 * scale, 281.5833282470703 * scale, 182.5 * scale, 336.5833282470703 * scale); ctx.bezierCurveTo(263 * scale, 248.5833282470703 * scale, 263 * scale, 248.5833282470703 * scale, 343.5 * scale, 160.5833282470703 * scale); ctx.bezierCurveTo(280.5 * scale, 104.58332824707031 * scale, 280.5 * scale, 104.58332824707031 * scale, 217.5 * scale, 48.58332824707031 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 4 * scale); //#ffffff #d4d4d4 ctx.save(); ctx.translate(197 * scale, 169.0833282470703 * scale); ctx.rotate(10.16); round_rect(ctx, -93.5 * scale, -126.5 * scale, 187 * scale, 253 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[1], 8 * scale); //#5b2400 #2f1300 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(226.5 * scale, 24.583328247070312 * scale); ctx.bezierCurveTo(58.5 * scale, 207.5833282470703 * scale, 143 * scale, 116.58332824707031 * scale, 59.5 * scale, 208.5833282470703 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 8 * scale); //#2f1300 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46.133331298828125 * scale, 202.64999389648438 * scale); ctx.bezierCurveTo(46.133331298828125 * scale, 215.64999389648438 * scale, 46.133331298828125 * scale, 215.64999389648438 * scale, 46.133331298828125 * scale, 228.64999389648438 * scale); ctx.closePath(); fill_path(ctx, color[4], color[1], 8 * scale); //#5b2400 #2f1300 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55.133331298828125 * scale, 211.64999389648438 * scale); ctx.bezierCurveTo(55.133331298828125 * scale, 225.14999389648438 * scale, 55.133331298828125 * scale, 225.14999389648438 * scale, 55.133331298828125 * scale, 238.64999389648438 * scale); ctx.bezierCurveTo(50.133331298828125 * scale, 235.64999389648438 * scale, 50.133331298828125 * scale, 235.64999389648438 * scale, 45.133331298828125 * scale, 232.64999389648438 * scale); ctx.bezierCurveTo(45.133331298828125 * scale, 216.64999389648438 * scale, 45.133331298828125 * scale, 216.64999389648438 * scale, 45.133331298828125 * scale, 200.64999389648438 * scale); ctx.closePath(); fill_path(ctx, color[4], color[1], 8 * scale); //#5b2400 #2f1300 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46.133331298828125 * scale, 198.39999389648438 * scale); ctx.bezierCurveTo(46.133331298828125 * scale, 199.89999389648438 * scale, 46.133331298828125 * scale, 199.89999389648438 * scale, 46.133331298828125 * scale, 201.39999389648438 * scale); ctx.closePath(); fill_path(ctx, color[4], color[1], 8 * scale); //#5b2400 #2f1300 ctx.save(); ctx.translate(249.63333129882812 * scale, 120.89999389648438 * scale); ctx.rotate(7.04); round_rect(ctx, -58.5 * scale, -32 * scale, 117 * scale, 64 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[5]); //#984e21 return can; } function create_paper(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 170 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(-10 * scale, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 4.109375 * scale); ctx.bezierCurveTo(117 * scale, 9.609375 * scale, 117 * scale, 9.609375 * scale, 161.5 * scale, 15.109375 * scale); ctx.bezierCurveTo(134.5 * scale, 106.109375 * scale, 110.5 * scale, 130.109375 * scale, 63.5 * scale, 145.109375 * scale); ctx.bezierCurveTo(33.5 * scale, 120.609375 * scale, 33.5 * scale, 120.609375 * scale, 3.5 * scale, 96.109375 * scale); ctx.bezierCurveTo(82.5 * scale, 75.109375 * scale, 69.5 * scale, 29.109375 * scale, 71.5 * scale, 6.109375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#000000 #8bc96e ctx.globalAlpha = 1; ctx.translate(10 * scale, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 4.109375 * scale); ctx.bezierCurveTo(117 * scale, 9.609375 * scale, 117 * scale, 9.609375 * scale, 161.5 * scale, 15.109375 * scale); ctx.bezierCurveTo(134.5 * scale, 106.109375 * scale, 110.5 * scale, 130.109375 * scale, 63.5 * scale, 145.109375 * scale); ctx.bezierCurveTo(33.5 * scale, 120.609375 * scale, 33.5 * scale, 120.609375 * scale, 3.5 * scale, 96.109375 * scale); ctx.bezierCurveTo(82.5 * scale, 75.109375 * scale, 69.5 * scale, 29.109375 * scale, 71.5 * scale, 6.109375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 10 * scale); //#000000 #8bc96e return can; } function create_lock(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 47 * scale; can.height = 60 * scale; circle(ctx, 23.5 * scale, 20.734375 * scale, 15.132745950421556 * scale); fill_path(ctx, undefined, color[2], 4 * scale); //#989894 circle(ctx, 23.5 * scale, 20.734375 * scale, 18.601075237738275 * scale); fill_path(ctx, undefined, color[1], 4 * scale); //#60605b circle(ctx, 23.5 * scale, 20.734375 * scale, 11.40175425099138 * scale); fill_path(ctx, undefined, color[1], 4 * scale); //#60605b ctx.save(); ctx.translate(23 * scale, 38.734375 * scale); ctx.rotate(0); round_rect(ctx, -21.5 * scale, -19 * scale, 43 * scale, 38 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 4 * scale); //#9c9c43 #5f5f29 ctx.save(); ctx.translate(23.5 * scale, 43.734375 * scale); ctx.rotate(0.5235987755982988); round_regular_polygon(ctx, 3, 8.06225774829855 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[3]); //#5f5f29 circle(ctx, 23.5 * scale, 35.734375 * scale, 7.0710678118654755 * scale); fill_path(ctx, color[3]); //#5f5f29 return can; } function create_tronctotem(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 201 * scale; can.height = 164 * scale; ctx.translate(0, 5 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; circle(ctx, 100.5 * scale, 82 * scale, 74.92746655359852 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100.5 * scale, 82 * scale, 65.9417374971317 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 ctx.translate(0, -5); ctx.globalAlpha = 1; circle(ctx, 100.5 * scale, 82 * scale, 74.92746655359852 * scale); fill_path(ctx, color[1], color[3], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100.5 * scale, 82 * scale, 65.9417374971317 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100.5 * scale, 82 * scale, 35.9417374971317 * scale); fill_path(ctx, color[1], color[2], 20 * scale); //#f8ffe6 #f52827 circle(ctx, 100.5 * scale, 82 * scale, 15.9417374971317 * scale); fill_path(ctx, color[1], color[2], 6 * scale); //#f8ffe6 #f52827 return can; } function create_headtotem(scale, draw_shadow, color, rotate) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 501 * scale; can.height = 564 * scale; ctx.scale(0.5, 0.5); ctx.translate(240 * scale, 255 * scale); ctx.rotate(rotate); ctx.globalAlpha = draw_shadow ? 0.5 : 0.2; circle(ctx, 174 * scale, 87.984375 * scale, 20.8806130178211 * scale); fill_path(ctx, color[0], color[0], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 174 * scale, 87.984375 * scale, 12.165525060596439 * scale); fill_path(ctx, color[0], color[0], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 174 * scale, 87.484375 * scale, 6 * scale); fill_path(ctx, color[0]); //#ff1300 circle(ctx, 30 * scale, 87.984375 * scale, 20.8806130178211 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 30 * scale, 87.984375 * scale, 12.165525060596439 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 30 * scale, 87.484375 * scale, 6 * scale); fill_path(ctx, color[0]); //#ff1300 circle(ctx, 100 * scale, 30 * scale, 20.8806130178211 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100 * scale, 30 * scale, 12.165525060596439 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100 * scale, 30 * scale, 6 * scale); fill_path(ctx, color[0]); //#ff1300 circle(ctx, 100 * scale, 130 * scale, 20.8806130178211 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100 * scale, 130 * scale, 12.165525060596439 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#f8ffe6 #f52827 circle(ctx, 100 * scale, 130 * scale, 6 * scale); fill_path(ctx, color[0]); //#ff1300 ctx.save(); ctx.translate(102 * scale, 81.984375 * scale); ctx.rotate(0); round_rect(ctx, -74 * scale, -57 * scale, 148 * scale, 114 * scale, 23 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#fff7ea #f52827 ctx.save(); ctx.translate(101 * scale, 64.984375 * scale); ctx.rotate(0); round_rect(ctx, -33 * scale, -10 * scale, 66 * scale, 20 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#fff7ea #f52827 ctx.save(); ctx.translate(102 * scale, 63.484375 * scale); ctx.rotate(0); round_rect(ctx, -9 * scale, -27.5 * scale, 18 * scale, 55 * scale, 15 * scale); ctx.restore(); ctx.translate(5, -5); ctx.globalAlpha = 1; circle(ctx, 174 * scale, 87.984375 * scale, 20.8806130178211 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 174 * scale, 87.984375 * scale, 12.165525060596439 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 174 * scale, 87.484375 * scale, 6 * scale); fill_path(ctx, color[2]); //#f8ffe6 #f52827 circle(ctx, 30 * scale, 87.984375 * scale, 20.8806130178211 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 30 * scale, 87.984375 * scale, 12.165525060596439 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 30 * scale, 87.484375 * scale, 6 * scale); fill_path(ctx, color[2]); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 30 * scale, 20.8806130178211 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 30 * scale, 12.165525060596439 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 30 * scale, 6 * scale); fill_path(ctx, color[1]); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 130 * scale, 20.8806130178211 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 130 * scale, 12.165525060596439 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 102 * scale, 130 * scale, 6 * scale); fill_path(ctx, color[1]); //#f8ffe6 #f52827 ctx.save(); ctx.translate(102 * scale, 81.984375 * scale); round_rect(ctx, -74 * scale, -57 * scale, 148 * scale, 114 * scale, 23 * scale); ctx.restore(); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 ctx.save(); ctx.translate(101 * scale, 64.984375 * scale); round_rect(ctx, -33 * scale, -10 * scale, 66 * scale, 20 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 8 * scale); //#f8ffe6 #f52827 ctx.save(); ctx.translate(102 * scale, 63.484375 * scale); round_rect(ctx, -9 * scale, -27.5 * scale, 18 * scale, 55 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[2], color[1], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 135 * scale, 107.36605834960938 * scale, 21.095023109728988 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 135 * scale, 107.36605834960938 * scale, 13 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 135 * scale, 107.36605834960938 * scale, 6.082762530298219 * scale); fill_path(ctx, color[2]); //#f8ffe6 #f52827 circle(ctx, 70 * scale, 107.36605834960938 * scale, 21.095023109728988 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 70 * scale, 107.36605834960938 * scale, 13 * scale); fill_path(ctx, color[1], color[3], 8 * scale); //#f8ffe6 #f52827 circle(ctx, 70 * scale, 107.36605834960938 * scale, 6.082762530298219 * scale); fill_path(ctx, color[2]); //#f8ffe6 #f52827 return can; } function create_icon_team(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 95 * scale; can.height = 85 * scale; if (i == 0) { ctx.translate(7 * scale, 15 * scale); ctx.scale(0.9, 0.9); ctx.save(); round_rect(ctx, 0 * scale, 5 * scale, 90 * scale, 60 * scale, 10); fill_path(ctx, color[0]); //#ececec #000000 ctx.globalCompositeOperation = "destination-out"; circle(ctx, 25 * scale, 40 * scale, 10 * scale); ctx.fill(); circle(ctx, 65 * scale, 40 * scale, 10 * scale); ctx.fill(); ctx.restore(); ctx.save(); round_rect(ctx, 0, 0, 90 * scale, 60 * scale, 10 * scale); fill_path(ctx, color[1]); //#ececec #000000 ctx.globalCompositeOperation = "destination-out"; circle(ctx, 25 * scale, 40 * scale, 10 * scale); ctx.fill(); circle(ctx, 65 * scale, 40 * scale, 10 * scale); ctx.fill(); ctx.restore(); } else if (i == 1) { ctx.scale(0.8, 0.8); ctx.translate(15 * scale, 33 * scale); ctx.save(); ctx.scale(0.56, 0.56); ctx.translate(-39 * scale, -60 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32.5 * scale, 50.642852783203125 * scale); ctx.bezierCurveTo(83 * scale, 69.64285278320312 * scale, 83 * scale, 69.64285278320312 * scale, 133.5 * scale, 88.64285278320312 * scale); ctx.bezierCurveTo(93 * scale, 92.64285278320312 * scale, 93 * scale, 92.64285278320312 * scale, 52.5 * scale, 96.64285278320312 * scale); ctx.bezierCurveTo(30.5 * scale, 100.64285278320312 * scale, 36.5 * scale, 94.64285278320312 * scale, 32.5 * scale, 84.64285278320312 * scale); ctx.bezierCurveTo(21.5 * scale, 45.642852783203125 * scale, 24.5 * scale, 48.642852783203125 * scale, 31.5 * scale, 50.642852783203125 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#3cf44c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 85.64285278320312 * scale); ctx.bezierCurveTo(160.5 * scale, 67.14285278320312 * scale, 160.5 * scale, 67.14285278320312 * scale, 204.5 * scale, 48.642852783203125 * scale); ctx.bezierCurveTo(220.5 * scale, 42.642852783203125 * scale, 208.5 * scale, 68.64285278320312 * scale, 205.5 * scale, 85.64285278320312 * scale); ctx.bezierCurveTo(202.5 * scale, 98.64285278320312 * scale, 199.5 * scale, 98.64285278320312 * scale, 188.5 * scale, 100.64285278320312 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#3cf44c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(166.5 * scale, 68.64285278320312 * scale); ctx.bezierCurveTo(147.5 * scale, 72.64285278320312 * scale, 145.5 * scale, 73.64285278320312 * scale, 142.5 * scale, 62.642852783203125 * scale); ctx.bezierCurveTo(121.5 * scale, 12.642852783203125 * scale, 122.5 * scale, 5.642852783203125 * scale, 117.5 * scale, 15.642852783203125 * scale); ctx.bezierCurveTo(105.5 * scale, 40.642852783203125 * scale, 105.5 * scale, 40.642852783203125 * scale, 93.5 * scale, 65.64285278320312 * scale); ctx.bezierCurveTo(89.5 * scale, 74.64285278320312 * scale, 84.5 * scale, 72.64285278320312 * scale, 73.5 * scale, 74.64285278320312 * scale); ctx.bezierCurveTo(98 * scale, 87.64285278320312 * scale, 98 * scale, 87.64285278320312 * scale, 122.5 * scale, 100.64285278320312 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#63d33f ctx.restore(); ctx.save(); round_rect(ctx, 0, 15 * scale, 90 * scale, 50 * scale, 10 * scale); fill_path(ctx, color[0]); //#ececec #000000 round_rect(ctx, 0, 10 * scale, 90 * scale, 50 * scale, 10 * scale); fill_path(ctx, color[1]); //#ececec #000000 ctx.globalCompositeOperation = "destination-out"; circle(ctx, 25 * scale, 40 * scale, 10 * scale); ctx.fill(); circle(ctx, 65 * scale, 40 * scale, 10 * scale); ctx.fill(); ctx.restore(); } return can; } function create_team_button(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 120 * scale; can.height = 100 * scale; round_rect(ctx, 10 * scale, 10 * scale, 95 * scale, 80 * scale, 10 * scale); fill_path(ctx, color[2]); //#ececec #000000 round_rect(ctx, 10 * scale, 5 * scale, 95 * scale, 80 * scale, 10 * scale); fill_path(ctx, color[3], color[4], 4 * scale); //#ececec #000000 if (i == 0) { var img = create_icon_team(0.75 * scale, color, 0); ctx.drawImage(img, 22 * scale, 18 * scale); } else if (i == 1) { var img = create_icon_team(0.75 * scale, color, 1); ctx.drawImage(img, 22 * scale, 18 * scale); } return can; } const { defineProperty } = Object; function create_totem(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 185 * scale; can.height = 164 * scale; ctx.translate(0, 0); var img = create_tronctotem(scale, draw_shadow, color); ctx.drawImage(img, -10 * scale, 0 * scale); var img = create_headtotem(scale, draw_shadow, color, 0); ctx.drawImage(img, -83 * scale, -40 * scale); var img = create_headtotem(scale, draw_shadow, color, window.Math.PI / 1.4); ctx.drawImage(img, -15 * scale, -88 * scale); var img = create_headtotem(scale, draw_shadow, color, window.Math.PI / -1.4); ctx.drawImage(img, 15 * scale, -8 * scale); return can; } function create_lockpick(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 450 * scale; can.height = 790 * scale; ctx.translate(5 * scale, 5 * scale); ctx.globalAlpha = draw_shadow ? 0 : 0; circle(ctx, 178.5 * scale, 172.828125 * scale, 150 * scale); fill_path(ctx, undefined, color[0], 65 * scale); //#5fd1ba #37f79b circle(ctx, 178.5 * scale, 172.828125 * scale, 150 * scale); fill_path(ctx, undefined, color[0], 55 * scale); //#5fd1ba #37f79b ctx.closePath(); ctx.save(); ctx.translate(177 * scale, 512.328125 * scale); round_rect(ctx, -25 * scale, -202.5 * scale, 65 * scale, 405 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[0]); //#5fd1ba #37f79b ctx.save(); ctx.translate(136 * scale, 581.828125 * scale); round_rect(ctx, -39 * scale, -23 * scale, 78 * scale, 46 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[0]); //#5fd1ba #000000 ctx.save(); ctx.translate(135.5 * scale, 663.828125 * scale); round_rect(ctx, -39.5 * scale, -22 * scale, 79 * scale, 44 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[0]); //#5fd1ba #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(114 * scale, 594.828125 * scale); ctx.bezierCurveTo(175 * scale, 596.828125 * scale, 163 * scale, 596.828125 * scale, 172 * scale, 594.828125 * scale); ctx.bezierCurveTo(171.5 * scale, 633.828125 * scale, 171.5 * scale, 633.828125 * scale, 171 * scale, 672.828125 * scale); ctx.bezierCurveTo(110 * scale, 673.828125 * scale, 140.5 * scale, 673.328125 * scale, 110 * scale, 673.828125 * scale); ctx.bezierCurveTo(110.5 * scale, 661.828125 * scale, 110.5 * scale, 661.828125 * scale, 111 * scale, 649.828125 * scale); ctx.bezierCurveTo(157 * scale, 633.828125 * scale, 134 * scale, 607.828125 * scale, 114 * scale, 594.828125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#5fd1ba #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(0, 5 * scale); ctx.moveTo(140 * scale, 294.828125 * scale); ctx.bezierCurveTo(212 * scale, 295.828125 * scale, 176.5 * scale, 295.328125 * scale, 213 * scale, 295.828125 * scale); ctx.bezierCurveTo(201.5 * scale, 325.328125 * scale, 201.5 * scale, 325.328125 * scale, 190 * scale, 354.828125 * scale); ctx.bezierCurveTo(175.5 * scale, 355.828125 * scale, 175.5 * scale, 355.828125 * scale, 161 * scale, 356.828125 * scale); ctx.bezierCurveTo(154.5 * scale, 328.828125 * scale, 154.5 * scale, 328.828125 * scale, 148 * scale, 300.828125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#5fd1ba #000000 ctx.translate(3, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 679.828125 * scale); ctx.bezierCurveTo(180 * scale, 665.828125 * scale, 155 * scale, 675.828125 * scale, 151 * scale, 671.828125 * scale); ctx.bezierCurveTo(154.5 * scale, 685.328125 * scale, 154.5 * scale, 685.328125 * scale, 158 * scale, 698.828125 * scale); ctx.bezierCurveTo(171 * scale, 699.828125 * scale, 171 * scale, 699.828125 * scale, 184 * scale, 700.828125 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#5fd1ba #000000 ctx.save(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157 * scale, 548.828125 * scale); ctx.bezierCurveTo(157 * scale, 561.828125 * scale, 157 * scale, 561.828125 * scale, 157 * scale, 574.828125 * scale); ctx.bezierCurveTo(132.5 * scale, 580.828125 * scale, 132.5 * scale, 580.828125 * scale, 108 * scale, 586.828125 * scale); ctx.bezierCurveTo(112 * scale, 599.828125 * scale, 111 * scale, 593.828125 * scale, 112 * scale, 599.828125 * scale); ctx.bezierCurveTo(159 * scale, 603.828125 * scale, 126.5 * scale, 601.328125 * scale, 141 * scale, 602.828125 * scale); ctx.bezierCurveTo(145 * scale, 641.828125 * scale, 143.5 * scale, 623.828125 * scale, 146 * scale, 644.828125 * scale); ctx.bezierCurveTo(129.5 * scale, 645.328125 * scale, 129.5 * scale, 645.328125 * scale, 113 * scale, 645.828125 * scale); ctx.bezierCurveTo(107.5 * scale, 652.828125 * scale, 107.5 * scale, 652.828125 * scale, 102 * scale, 659.828125 * scale); ctx.bezierCurveTo(104 * scale, 669.328125 * scale, 104 * scale, 669.328125 * scale, 106 * scale, 678.828125 * scale); ctx.bezierCurveTo(145 * scale, 679.328125 * scale, 145 * scale, 679.328125 * scale, 184 * scale, 679.828125 * scale); ctx.bezierCurveTo(185 * scale, 615.828125 * scale, 185 * scale, 615.828125 * scale, 186 * scale, 551.828125 * scale); ctx.bezierCurveTo(172.5 * scale, 551.328125 * scale, 172.5 * scale, 551.328125 * scale, 159 * scale, 550.828125 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 7 * scale); //#5fd1ba #000000 ctx.restore(); ctx.globalAlpha = 1; ctx.translate(15 * scale, 35 * scale); circle(ctx, 178.5 * scale, 172.828125 * scale, 150 * scale); fill_path(ctx, undefined, color[2], 95 * scale); //#5fd1ba #37f79b circle(ctx, 178.5 * scale, 172.828125 * scale, 150 * scale); fill_path(ctx, undefined, color[1], 55 * scale); //#5fd1ba #37f79b ctx.closePath(); ctx.save(); ctx.translate(177 * scale, 512.328125 * scale); round_rect(ctx, -25 * scale, -202.5 * scale, 65 * scale, 405 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 20 * scale); //#5fd1ba #37f79b ctx.save(); ctx.translate(136 * scale, 581.828125 * scale); round_rect(ctx, -39 * scale, -23 * scale, 78 * scale, 46 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 20 * scale); //#5fd1ba #000000 ctx.save(); ctx.translate(135.5 * scale, 663.828125 * scale); round_rect(ctx, -39.5 * scale, -22 * scale, 79 * scale, 44 * scale, 25 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 20 * scale); //#5fd1ba #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(114 * scale, 594.828125 * scale); ctx.bezierCurveTo(175 * scale, 596.828125 * scale, 163 * scale, 596.828125 * scale, 172 * scale, 594.828125 * scale); ctx.bezierCurveTo(171.5 * scale, 633.828125 * scale, 171.5 * scale, 633.828125 * scale, 171 * scale, 672.828125 * scale); ctx.bezierCurveTo(110 * scale, 673.828125 * scale, 140.5 * scale, 673.328125 * scale, 110 * scale, 673.828125 * scale); ctx.bezierCurveTo(110.5 * scale, 661.828125 * scale, 110.5 * scale, 661.828125 * scale, 111 * scale, 649.828125 * scale); ctx.bezierCurveTo(157 * scale, 633.828125 * scale, 134 * scale, 607.828125 * scale, 114 * scale, 594.828125 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#5fd1ba #000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(0, 5 * scale); ctx.moveTo(123 * scale, 294.828125 * scale); ctx.bezierCurveTo(212 * scale, 295.828125 * scale, 190.5 * scale, 295.328125 * scale, 250 * scale, 295.828125 * scale); ctx.bezierCurveTo(231.5 * scale, 325.328125 * scale, 231.5 * scale, 325.328125 * scale, 220 * scale, 354.828125 * scale); ctx.bezierCurveTo(175.5 * scale, 355.828125 * scale, 175.5 * scale, 355.828125 * scale, 140 * scale, 356.828125 * scale); ctx.bezierCurveTo(123.5 * scale, 328.828125 * scale, 123.5 * scale, 328.828125 * scale, 123 * scale, 294.828125 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#5fd1ba #000000 ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159 * scale, 679.828125 * scale); ctx.bezierCurveTo(180 * scale, 665.828125 * scale, 155 * scale, 675.828125 * scale, 151 * scale, 671.828125 * scale); ctx.bezierCurveTo(154.5 * scale, 685.328125 * scale, 154.5 * scale, 685.328125 * scale, 158 * scale, 698.828125 * scale); ctx.bezierCurveTo(171 * scale, 699.828125 * scale, 171 * scale, 699.828125 * scale, 184 * scale, 700.828125 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#5fd1ba #000000 ctx.save(); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157 * scale, 548.828125 * scale); ctx.bezierCurveTo(157 * scale, 561.828125 * scale, 157 * scale, 561.828125 * scale, 157 * scale, 574.828125 * scale); ctx.bezierCurveTo(132.5 * scale, 580.828125 * scale, 132.5 * scale, 580.828125 * scale, 108 * scale, 586.828125 * scale); ctx.bezierCurveTo(112 * scale, 599.828125 * scale, 111 * scale, 593.828125 * scale, 112 * scale, 599.828125 * scale); ctx.bezierCurveTo(159 * scale, 603.828125 * scale, 126.5 * scale, 601.328125 * scale, 141 * scale, 602.828125 * scale); ctx.bezierCurveTo(145 * scale, 641.828125 * scale, 143.5 * scale, 623.828125 * scale, 146 * scale, 644.828125 * scale); ctx.bezierCurveTo(129.5 * scale, 645.328125 * scale, 129.5 * scale, 645.328125 * scale, 113 * scale, 645.828125 * scale); ctx.bezierCurveTo(107.5 * scale, 652.828125 * scale, 107.5 * scale, 652.828125 * scale, 102 * scale, 659.828125 * scale); ctx.bezierCurveTo(104 * scale, 669.328125 * scale, 104 * scale, 669.328125 * scale, 106 * scale, 678.828125 * scale); ctx.bezierCurveTo(145 * scale, 679.328125 * scale, 145 * scale, 679.328125 * scale, 184 * scale, 679.828125 * scale); ctx.bezierCurveTo(185 * scale, 615.828125 * scale, 185 * scale, 615.828125 * scale, 186 * scale, 551.828125 * scale); ctx.bezierCurveTo(172.5 * scale, 551.328125 * scale, 172.5 * scale, 551.328125 * scale, 159 * scale, 550.828125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 7 * scale); //#5fd1ba #000000 ctx.restore(); return can; } function create_resurrection_ground(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 202 * scale; can.height = 202 * scale; ctx.translate(2 * scale, 1 * scale); ctx.globalAlpha = 0.3; circle(ctx, 98 * scale, 99 * scale, 100 * scale); fill_path(ctx, color[0]); //#2bffd6 ctx.globalAlpha = 0.5; circle(ctx, 98 * scale, 99 * scale, 90 * scale); fill_path(ctx, color[1]); //#bcffe4 return can; } function create_resurrection_hole(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 89 * scale; can.height = 89 * scale; ctx.save(); ctx.translate(44.5 * scale, 44.5 * scale); round_regular_polygon(ctx, 6, 40 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(44.5 * scale, 44.5 * scale); round_regular_polygon(ctx, 6, 25.11521001172521 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 5 * scale); //#bcffe4 #5fd9dd return can; } function create_resurrection_rotate(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 88 * scale; can.height = 88 * scale; ctx.save(); ctx.translate(44 * scale, 44 * scale); ctx.rotate(0.52); round_regular_polygon(ctx, 6, 43 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0], color[1], 3 * scale); //#bcffe4 #5fd9dd return can; } function create_resurrection(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 202 * scale; can.height = 202 * scale; ctx.translate(2 * scale, 1 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(98 * scale, 41.15177917480469 * scale); ctx.rotate(0.8); round_rect(ctx, -16 * scale, -16.5 * scale, 32 * scale, 33 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 22.5089111328125 * scale); ctx.bezierCurveTo(97.5 * scale, 41.5089111328125 * scale, 97.5 * scale, 41.5089111328125 * scale, 97 * scale, 60.5089111328125 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(147.5 * scale, 69.5089111328125 * scale); ctx.rotate(0.2); round_rect(ctx, -15.5 * scale, -16 * scale, 31 * scale, 32 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(163 * scale, 59.50892639160156 * scale); ctx.bezierCurveTo(147 * scale, 69.50892639160156 * scale, 127 * scale, 82.50892639160156 * scale, 131 * scale, 79.50892639160156 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(143.5 * scale, 128.2946319580078 * scale); ctx.rotate(1.24); round_rect(ctx, -16.5 * scale, -17.5 * scale, 33 * scale, 35 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 135.93748474121094 * scale); ctx.bezierCurveTo(143.5 * scale, 128.43748474121094 * scale, 129 * scale, 120.93748474121094 * scale, 125 * scale, 120.93748474121094 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(99 * scale, 156.08035278320312 * scale); ctx.rotate(0.84); round_rect(ctx, -18 * scale, -18 * scale, 36 * scale, 36 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 136.08035278320312 * scale); ctx.bezierCurveTo(98 * scale, 156.08035278320312 * scale, 98 * scale, 156.08035278320312 * scale, 98 * scale, 176.08035278320312 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(54 * scale, 72.22320556640625 * scale); ctx.rotate(1.32); round_rect(ctx, -18 * scale, -19 * scale, 36 * scale, 38 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 60.79463195800781 * scale); ctx.bezierCurveTo(53.5 * scale, 72.29463195800781 * scale, 69 * scale, 79.79463195800781 * scale, 73 * scale, 83.79463195800781 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(49 * scale, 127.29463195800781 * scale); ctx.rotate(1.76); round_rect(ctx, -20 * scale, -17.5 * scale, 40 * scale, 35 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 141.7946319580078 * scale); ctx.bezierCurveTo(47 * scale, 130.2946319580078 * scale, 64 * scale, 119.79463195800781 * scale, 64 * scale, 118.79463195800781 * scale); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(98 * scale, 41.15177917480469 * scale); ctx.rotate(0.8); round_rect(ctx, -16 * scale, -16.5 * scale, 32 * scale, 33 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 22.5089111328125 * scale); ctx.bezierCurveTo(97.5 * scale, 41.5089111328125 * scale, 97.5 * scale, 41.5089111328125 * scale, 97 * scale, 60.5089111328125 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(147.5 * scale, 69.5089111328125 * scale); ctx.rotate(0.2); round_rect(ctx, -15.5 * scale, -16 * scale, 31 * scale, 32 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(163 * scale, 59.50892639160156 * scale); ctx.bezierCurveTo(147 * scale, 69.50892639160156 * scale, 127 * scale, 82.50892639160156 * scale, 131 * scale, 79.50892639160156 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(143.5 * scale, 128.2946319580078 * scale); ctx.rotate(1.24); round_rect(ctx, -16.5 * scale, -17.5 * scale, 33 * scale, 35 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(162 * scale, 135.93748474121094 * scale); ctx.bezierCurveTo(143.5 * scale, 128.43748474121094 * scale, 129 * scale, 120.93748474121094 * scale, 125 * scale, 120.93748474121094 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(99 * scale, 156.08035278320312 * scale); ctx.rotate(0.84); round_rect(ctx, -18 * scale, -18 * scale, 36 * scale, 36 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 136.08035278320312 * scale); ctx.bezierCurveTo(98 * scale, 156.08035278320312 * scale, 98 * scale, 156.08035278320312 * scale, 98 * scale, 176.08035278320312 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(54 * scale, 72.22320556640625 * scale); ctx.rotate(1.32); round_rect(ctx, -18 * scale, -19 * scale, 36 * scale, 38 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(34 * scale, 60.79463195800781 * scale); ctx.bezierCurveTo(53.5 * scale, 72.29463195800781 * scale, 69 * scale, 79.79463195800781 * scale, 73 * scale, 83.79463195800781 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(49 * scale, 127.29463195800781 * scale); ctx.rotate(1.76); round_rect(ctx, -20 * scale, -17.5 * scale, 40 * scale, 35 * scale, 7 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30 * scale, 141.7946319580078 * scale); ctx.bezierCurveTo(47 * scale, 130.2946319580078 * scale, 64 * scale, 119.79463195800781 * scale, 64 * scale, 118.79463195800781 * scale); fill_path(ctx, undefined, color[4], 5 * scale); //#bcffe4 #5fd9dd ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(98 * scale, 99 * scale); round_regular_polygon(ctx, 6, 70.28669492273468 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(98 * scale, 99 * scale); round_regular_polygon(ctx, 6, 56.455940020351264 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[2]); //#bcffe4 #5fd9dd ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(98 * scale, 99 * scale); round_regular_polygon(ctx, 6, 70.28669492273468 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[5], color[6], 5 * scale); //#bcffe4 #5fd9dd ctx.save(); ctx.translate(98 * scale, 99 * scale); round_regular_polygon(ctx, 6, 56.455940020351264 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[7], color[8], 7 * scale); //#bcffe4 #5fd9dd return can; } function create_dragon_heart(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 161 * scale; can.height = 184 * scale; ctx.translate(0, 10 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.5 * scale, 34.609375 * scale); ctx.bezierCurveTo(48.5 * scale, 7.609375 * scale, 11.5 * scale, 58.609375 * scale, 20.5 * scale, 97.609375 * scale); ctx.bezierCurveTo(44.5 * scale, 161.609375 * scale, 70.5 * scale, 171.609375 * scale, 88.5 * scale, 156.609375 * scale); ctx.bezierCurveTo(120.5 * scale, 129.609375 * scale, 123.5 * scale, 105.609375 * scale, 128.5 * scale, 83.609375 * scale); ctx.bezierCurveTo(137.5 * scale, 79.609375 * scale, 141.5 * scale, 79.609375 * scale, 146.5 * scale, 81.609375 * scale); ctx.bezierCurveTo(153.5 * scale, 70.609375 * scale, 151.5 * scale, 65.609375 * scale, 148.5 * scale, 61.609375 * scale); ctx.bezierCurveTo(134.5 * scale, 60.609375 * scale, 131.5 * scale, 63.609375 * scale, 127.5 * scale, 66.609375 * scale); ctx.bezierCurveTo(127.5 * scale, 55.609375 * scale, 125.5 * scale, 54.609375 * scale, 120.5 * scale, 51.609375 * scale); ctx.bezierCurveTo(128.5 * scale, 42.609375 * scale, 136.5 * scale, 38.609375 * scale, 147.5 * scale, 39.609375 * scale); ctx.bezierCurveTo(152.5 * scale, 23.609375 * scale, 147.5 * scale, 21.609375 * scale, 140.5 * scale, 17.609375 * scale); ctx.bezierCurveTo(120.5 * scale, 17.609375 * scale, 114.5 * scale, 27.609375 * scale, 106.5 * scale, 35.609375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(45.5 * scale, 144.609375 * scale); ctx.bezierCurveTo(35.5 * scale, 155.609375 * scale, 37 * scale, 152.109375 * scale, 28.5 * scale, 159.609375 * scale); ctx.bezierCurveTo(16.5 * scale, 154.609375 * scale, 16.5 * scale, 151.609375 * scale, 17.5 * scale, 141.609375 * scale); ctx.bezierCurveTo(25.5 * scale, 134.109375 * scale, 25.5 * scale, 134.109375 * scale, 33.5 * scale, 126.609375 * scale); fill_path(ctx, color[0]); //#e96c43 ctx.translate(0, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(45.5 * scale, 144.609375 * scale); ctx.bezierCurveTo(35.5 * scale, 155.609375 * scale, 37 * scale, 152.109375 * scale, 28.5 * scale, 159.609375 * scale); ctx.bezierCurveTo(16.5 * scale, 154.609375 * scale, 16.5 * scale, 151.609375 * scale, 17.5 * scale, 141.609375 * scale); ctx.bezierCurveTo(25.5 * scale, 134.109375 * scale, 25.5 * scale, 134.109375 * scale, 33.5 * scale, 126.609375 * scale); fill_path(ctx, color[1], color[2], 8 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.5 * scale, 34.609375 * scale); ctx.bezierCurveTo(48.5 * scale, 7.609375 * scale, 11.5 * scale, 58.609375 * scale, 20.5 * scale, 97.609375 * scale); ctx.bezierCurveTo(44.5 * scale, 161.609375 * scale, 70.5 * scale, 171.609375 * scale, 88.5 * scale, 156.609375 * scale); ctx.bezierCurveTo(120.5 * scale, 129.609375 * scale, 123.5 * scale, 105.609375 * scale, 128.5 * scale, 83.609375 * scale); ctx.bezierCurveTo(137.5 * scale, 79.609375 * scale, 141.5 * scale, 79.609375 * scale, 146.5 * scale, 81.609375 * scale); ctx.bezierCurveTo(153.5 * scale, 70.609375 * scale, 151.5 * scale, 65.609375 * scale, 148.5 * scale, 61.609375 * scale); ctx.bezierCurveTo(134.5 * scale, 60.609375 * scale, 131.5 * scale, 63.609375 * scale, 127.5 * scale, 66.609375 * scale); ctx.bezierCurveTo(127.5 * scale, 55.609375 * scale, 125.5 * scale, 54.609375 * scale, 120.5 * scale, 51.609375 * scale); ctx.bezierCurveTo(128.5 * scale, 42.609375 * scale, 136.5 * scale, 38.609375 * scale, 147.5 * scale, 39.609375 * scale); ctx.bezierCurveTo(152.5 * scale, 23.609375 * scale, 147.5 * scale, 21.609375 * scale, 140.5 * scale, 17.609375 * scale); ctx.bezierCurveTo(120.5 * scale, 17.609375 * scale, 114.5 * scale, 27.609375 * scale, 106.5 * scale, 35.609375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(104.5 * scale, 35.609375 * scale); ctx.bezierCurveTo(71.5 * scale, 36.609375 * scale, 57.5 * scale, 52.609375 * scale, 58.5 * scale, 81.609375 * scale); ctx.bezierCurveTo(59.5 * scale, 103.609375 * scale, 66.5 * scale, 107.609375 * scale, 66.5 * scale, 116.609375 * scale); ctx.bezierCurveTo(67.5 * scale, 128.609375 * scale, 65.5 * scale, 131.609375 * scale, 63.5 * scale, 137.609375 * scale); fill_path(ctx, undefined, color[2], 8 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59.5 * scale, 72.609375 * scale); ctx.bezierCurveTo(38.5 * scale, 80.609375 * scale, 43.5 * scale, 81.609375 * scale, 37.5 * scale, 89.609375 * scale); fill_path(ctx, undefined, color[2], 4 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60.5 * scale, 85.609375 * scale); ctx.bezierCurveTo(75.5 * scale, 91.609375 * scale, 76.5 * scale, 96.609375 * scale, 81.5 * scale, 104.609375 * scale); fill_path(ctx, undefined, color[2], 4 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(68.5 * scale, 122.609375 * scale); ctx.bezierCurveTo(79.5 * scale, 130.609375 * scale, 74.5 * scale, 128.609375 * scale, 80.5 * scale, 134.609375 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#e96c43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(142.5 * scale, 18.609375 * scale); ctx.bezierCurveTo(151.5 * scale, 28.609375 * scale, 151.5 * scale, 32.609375 * scale, 146.5 * scale, 40.609375 * scale); ctx.bezierCurveTo(137.5 * scale, 26.609375 * scale, 138.5 * scale, 24.609375 * scale, 142.5 * scale, 19.609375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#5dee86 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146.5 * scale, 61.50892639160156 * scale); ctx.bezierCurveTo(157.5 * scale, 69.50892639160156 * scale, 150.5 * scale, 79.50892639160156 * scale, 145.5 * scale, 81.50892639160156 * scale); ctx.bezierCurveTo(140.5 * scale, 65.50892639160156 * scale, 144.5 * scale, 64.50892639160156 * scale, 146.5 * scale, 62.50892639160156 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#5dee86 return can; } function create_gemme_green(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 104 * scale; can.height = 117 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(4 * scale, 90 * scale); ctx.bezierCurveTo(20 * scale, 99.5 * scale, 20 * scale, 99.5 * scale, 36 * scale, 109 * scale); ctx.bezierCurveTo(67 * scale, 92 * scale, 67 * scale, 92 * scale, 98 * scale, 75 * scale); ctx.bezierCurveTo(91 * scale, 27 * scale, 91 * scale, 27 * scale, 91 * scale, 28 * scale); ctx.bezierCurveTo(72.5 * scale, 16 * scale, 72.5 * scale, 16 * scale, 54 * scale, 4 * scale); ctx.bezierCurveTo(33.5 * scale, 10 * scale, 33.5 * scale, 10 * scale, 13 * scale, 16 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#59ba72 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(6 * scale, 76 * scale); ctx.bezierCurveTo(13.5 * scale, 51.5 * scale, 13.5 * scale, 51.5 * scale, 21 * scale, 27 * scale); ctx.bezierCurveTo(37.5 * scale, 17 * scale, 37.5 * scale, 17 * scale, 54 * scale, 7 * scale); ctx.bezierCurveTo(33.5 * scale, 12.5 * scale, 33.5 * scale, 12.5 * scale, 13 * scale, 18 * scale); ctx.closePath(); fill_path(ctx, color[1]); // 59ba72 #94d966 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(24 * scale, 62 * scale); ctx.bezierCurveTo(28.5 * scale, 53 * scale, 28.5 * scale, 53 * scale, 33 * scale, 44 * scale); ctx.bezierCurveTo(41.5 * scale, 41 * scale, 41.5 * scale, 41 * scale, 50 * scale, 38 * scale); ctx.bezierCurveTo(52.5 * scale, 35 * scale, 52.5 * scale, 35 * scale, 55 * scale, 32 * scale); ctx.bezierCurveTo(52 * scale, 30 * scale, 52 * scale, 30 * scale, 49 * scale, 28 * scale); ctx.bezierCurveTo(38 * scale, 31.5 * scale, 38 * scale, 31.5 * scale, 27 * scale, 35 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#94d966 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 107 * scale); ctx.bezierCurveTo(66 * scale, 90.5 * scale, 66 * scale, 90.5 * scale, 96 * scale, 74 * scale); ctx.bezierCurveTo(93 * scale, 52.5 * scale, 93 * scale, 52.5 * scale, 90 * scale, 31 * scale); ctx.bezierCurveTo(87 * scale, 48 * scale, 87 * scale, 48 * scale, 84 * scale, 65 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#5aa628 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(1 * scale, 89 * scale); ctx.bezierCurveTo(18 * scale, 100 * scale, 34 * scale, 110 * scale, 35 * scale, 111 * scale); ctx.bezierCurveTo(67 * scale, 93 * scale, 67 * scale, 93 * scale, 99 * scale, 75 * scale); ctx.bezierCurveTo(100 * scale, 78.5 * scale, 100 * scale, 78.5 * scale, 101 * scale, 82 * scale); ctx.bezierCurveTo(68 * scale, 99 * scale, 68 * scale, 99 * scale, 35 * scale, 116 * scale); ctx.bezierCurveTo(18 * scale, 106.5 * scale, 18 * scale, 106.5 * scale, 1 * scale, 97 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 107 * scale); ctx.bezierCurveTo(66.5 * scale, 91.5 * scale, 66.5 * scale, 91.5 * scale, 97 * scale, 76 * scale); ctx.bezierCurveTo(94.5 * scale, 52 * scale, 94.5 * scale, 52 * scale, 92 * scale, 28 * scale); ctx.bezierCurveTo(73 * scale, 15.5 * scale, 73 * scale, 15.5 * scale, 54 * scale, 3 * scale); ctx.bezierCurveTo(33 * scale, 9.5 * scale, 33 * scale, 9.5 * scale, 12 * scale, 16 * scale); ctx.bezierCurveTo(8 * scale, 53 * scale, 8 * scale, 53 * scale, 4 * scale, 90 * scale); ctx.bezierCurveTo(18.5 * scale, 99 * scale, 18.5 * scale, 99 * scale, 33 * scale, 108 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //5aa628 #38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(22 * scale, 71 * scale); ctx.bezierCurveTo(30 * scale, 76.5 * scale, 30 * scale, 76.5 * scale, 38 * scale, 82 * scale); ctx.bezierCurveTo(53 * scale, 72 * scale, 53 * scale, 72 * scale, 68 * scale, 62 * scale); ctx.bezierCurveTo(68 * scale, 52 * scale, 68 * scale, 52 * scale, 68 * scale, 42 * scale); ctx.bezierCurveTo(59.5 * scale, 35.5 * scale, 59.5 * scale, 35.5 * scale, 51 * scale, 29 * scale); ctx.bezierCurveTo(39.5 * scale, 32 * scale, 39.5 * scale, 32 * scale, 28 * scale, 35 * scale); ctx.bezierCurveTo(25 * scale, 52 * scale, 25 * scale, 52 * scale, 22 * scale, 69 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(5 * scale, 89 * scale); ctx.bezierCurveTo(20 * scale, 73 * scale, 12.5 * scale, 80.5 * scale, 20 * scale, 72 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35 * scale, 102 * scale); ctx.bezierCurveTo(36 * scale, 92.5 * scale, 36 * scale, 92.5 * scale, 37 * scale, 83 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(68 * scale, 62 * scale); ctx.bezierCurveTo(81 * scale, 67.5 * scale, 81 * scale, 67.5 * scale, 94 * scale, 73 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70 * scale, 41 * scale); ctx.bezierCurveTo(80 * scale, 35.5 * scale, 80 * scale, 35.5 * scale, 90 * scale, 30 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(28 * scale, 33 * scale); ctx.bezierCurveTo(21.5 * scale, 26.5 * scale, 21.5 * scale, 26.5 * scale, 15 * scale, 20 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51 * scale, 28 * scale); ctx.bezierCurveTo(53 * scale, 17 * scale, 53 * scale, 17 * scale, 55 * scale, 6 * scale); ctx.closePath(); fill_path(ctx, undefined, color[4], 6 * scale); //#38874d return can; } function create_superhammer(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 105 * scale; can.height = 144 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(-5 * scale, 0 * scale); ctx.save(); ctx.translate(52.5 * scale, 91.5 * scale); round_rect(ctx, -4.5 * scale, -39 * scale, 9 * scale, 78 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 3 * scale); //#d4ed53 #72b038 ctx.save(); ctx.translate(53 * scale, 36 * scale); round_rect(ctx, -29 * scale, -17.5 * scale, 58 * scale, 35 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#79ed93 #42f59c ctx.save(); ctx.translate(53.5 * scale, 35.5 * scale); round_rect(ctx, -26.5 * scale, -15 * scale, 53 * scale, 30 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 4 * scale); //#d4ed53 #b0f863 ctx.translate(5 * scale, 0 * scale); ctx.globalAlpha = 1; ctx.save(); ctx.translate(52.5 * scale, 91.5 * scale); round_rect(ctx, -4.5 * scale, -39 * scale, 9 * scale, 78 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 3 * scale); //#d4ed53 #72b038 ctx.save(); ctx.translate(53 * scale, 36 * scale); round_rect(ctx, -29 * scale, -17.5 * scale, 58 * scale, 35 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 4 * scale); //#79ed93 #42f59c ctx.save(); ctx.translate(53.5 * scale, 35.5 * scale); round_rect(ctx, -26.5 * scale, -15 * scale, 53 * scale, 30 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[5], color[6], 4 * scale); //#d4ed53 #b0f863 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(49 * scale, 60.5 * scale); ctx.bezierCurveTo(44 * scale, 56.5 * scale, 44 * scale, 56.5 * scale, 39 * scale, 52.5 * scale); ctx.bezierCurveTo(39 * scale, 46.5 * scale, 39 * scale, 46.5 * scale, 39 * scale, 40.5 * scale); ctx.bezierCurveTo(44 * scale, 44 * scale, 44 * scale, 44 * scale, 49 * scale, 47.5 * scale); ctx.bezierCurveTo(49 * scale, 54 * scale, 49 * scale, 54 * scale, 49 * scale, 60.5 * scale); ctx.closePath(); fill_path(ctx, color[7], color[6], 3 * scale); //#d4ed53 #72b038 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 40.5 * scale); ctx.bezierCurveTo(66 * scale, 46.5 * scale, 66 * scale, 46.5 * scale, 66 * scale, 52.5 * scale); ctx.bezierCurveTo(60.5 * scale, 56.5 * scale, 60.5 * scale, 56.5 * scale, 55 * scale, 60.5 * scale); ctx.bezierCurveTo(56 * scale, 53 * scale, 56 * scale, 53 * scale, 57 * scale, 45.5 * scale); ctx.bezierCurveTo(61.5 * scale, 43 * scale, 61.5 * scale, 43 * scale, 66 * scale, 40.5 * scale); ctx.closePath(); fill_path(ctx, color[7], color[6], 3 * scale); //#d4ed53 #72b038 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 33.5 * scale); ctx.bezierCurveTo(55.5 * scale, 41 * scale, 55.5 * scale, 41 * scale, 59 * scale, 48.5 * scale); ctx.bezierCurveTo(56 * scale, 58 * scale, 56 * scale, 58 * scale, 53 * scale, 67.5 * scale); ctx.bezierCurveTo(49 * scale, 58 * scale, 49 * scale, 58 * scale, 45 * scale, 48.5 * scale); ctx.bezierCurveTo(48.5 * scale, 41 * scale, 48.5 * scale, 41 * scale, 52 * scale, 33.5 * scale); ctx.closePath(); fill_path(ctx, color[9], color[8], 3 * scale); //#d4ed53 #72b038 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 47.5 * scale); ctx.bezierCurveTo(54.5 * scale, 50.5 * scale, 54.5 * scale, 50.5 * scale, 57 * scale, 53.5 * scale); ctx.bezierCurveTo(55 * scale, 60 * scale, 55 * scale, 60 * scale, 53 * scale, 66.5 * scale); ctx.bezierCurveTo(50.5 * scale, 61 * scale, 50.5 * scale, 61 * scale, 48 * scale, 55.5 * scale); ctx.bezierCurveTo(50 * scale, 52 * scale, 50 * scale, 52 * scale, 52 * scale, 48.5 * scale); ctx.closePath(); fill_path(ctx, color[11], color[10], 3 * scale); //#d4ed53 #72b038 return can; } function create_dragon_sword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 46 * scale; can.height = 140 * scale; ctx.scale(-1 * scale, 1 * scale); ctx.translate(-50 * scale, 40 * scale); ctx.translate(-20 * scale, 0); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(10 * scale, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(22.599990844726562 * scale, 85.94999694824219 * scale); ctx.bezierCurveTo(17.599990844726562 * scale, 83.94999694824219 * scale, 17.599990844726562 * scale, 83.94999694824219 * scale, 12.599990844726562 * scale, 81.94999694824219 * scale); ctx.bezierCurveTo(19.599990844726562 * scale, 73.94999694824219 * scale, 2.5999908447265625 * scale, 22.949996948242188 * scale, 33.59999084472656 * scale, 7.9499969482421875 * scale); ctx.bezierCurveTo(27.599990844726562 * scale, 28.949996948242188 * scale, 33.59999084472656 * scale, 26.949996948242188 * scale, 35.59999084472656 * scale, 32.94999694824219 * scale); ctx.bezierCurveTo(25.599990844726562 * scale, 59.94999694824219 * scale, 26.599990844726562 * scale, 69.94999694824219 * scale, 29.599990844726562 * scale, 82.94999694824219 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#81dae4 #5da9ae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-1 * scale, 0); ctx.moveTo(17.599990844726562 * scale, 89.75 * scale); ctx.bezierCurveTo(24.599990844726562 * scale, 99.75 * scale, 24.599990844726562 * scale, 101.75 * scale, 20.599990844726562 * scale, 111.75 * scale); ctx.bezierCurveTo(28.599990844726562 * scale, 110.75 * scale, 26.599990844726562 * scale, 112.75 * scale, 28.599990844726562 * scale, 111.75 * scale); ctx.bezierCurveTo(30.599990844726562 * scale, 96.75 * scale, 32.59999084472656 * scale, 96.75 * scale, 30.599990844726562 * scale, 87.75 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#81dae4 #5da9ae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(1 * scale, 0); ctx.moveTo(7.5999908447265625 * scale, 86.34999084472656 * scale); ctx.bezierCurveTo(12.599990844726562 * scale, 85.34999084472656 * scale, 14.599990844726562 * scale, 84.34999084472656 * scale, 13.599990844726562 * scale, 84.34999084472656 * scale); ctx.bezierCurveTo(21.599990844726562 * scale, 83.34999084472656 * scale, 21.599990844726562 * scale, 83.34999084472656 * scale, 29.599990844726562 * scale, 82.34999084472656 * scale); ctx.bezierCurveTo(33.59999084472656 * scale, 85.84999084472656 * scale, 33.59999084472656 * scale, 85.84999084472656 * scale, 37.59999084472656 * scale, 89.34999084472656 * scale); ctx.bezierCurveTo(34.09999084472656 * scale, 91.84999084472656 * scale, 34.09999084472656 * scale, 91.84999084472656 * scale, 30.599990844726562 * scale, 94.34999084472656 * scale); ctx.bezierCurveTo(21.099990844726562 * scale, 93.34999084472656 * scale, 21.099990844726562 * scale, 93.34999084472656 * scale, 11.599990844726562 * scale, 92.34999084472656 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#81dae4 #5da9ae ctx.save(); ctx.translate(23.599990844726562 * scale, 110.94999694824219 * scale); ctx.rotate(0); round_rect(ctx, -7 * scale, -4 * scale, 14 * scale, 8 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#81dae4 #5da9ae ctx.translate(0 * scale, 0); ctx.globalAlpha = 1; ctx.translate(10 * scale, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(22.599990844726562 * scale, 85.94999694824219 * scale); ctx.bezierCurveTo(17.599990844726562 * scale, 83.94999694824219 * scale, 17.599990844726562 * scale, 83.94999694824219 * scale, 12.599990844726562 * scale, 81.94999694824219 * scale); ctx.bezierCurveTo(19.599990844726562 * scale, 73.94999694824219 * scale, 2.5999908447265625 * scale, 22.949996948242188 * scale, 33.59999084472656 * scale, 7.9499969482421875 * scale); ctx.bezierCurveTo(27.599990844726562 * scale, 28.949996948242188 * scale, 33.59999084472656 * scale, 26.949996948242188 * scale, 35.59999084472656 * scale, 32.94999694824219 * scale); ctx.bezierCurveTo(25.599990844726562 * scale, 59.94999694824219 * scale, 26.599990844726562 * scale, 69.94999694824219 * scale, 29.599990844726562 * scale, 82.94999694824219 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 3 * scale); //#81dae4 #5da9ae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-1 * scale, 0); ctx.moveTo(17.599990844726562 * scale, 89.75 * scale); ctx.bezierCurveTo(24.599990844726562 * scale, 99.75 * scale, 24.599990844726562 * scale, 101.75 * scale, 20.599990844726562 * scale, 111.75 * scale); ctx.bezierCurveTo(28.599990844726562 * scale, 110.75 * scale, 26.599990844726562 * scale, 112.75 * scale, 28.599990844726562 * scale, 111.75 * scale); ctx.bezierCurveTo(30.599990844726562 * scale, 96.75 * scale, 32.59999084472656 * scale, 96.75 * scale, 30.599990844726562 * scale, 87.75 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 3 * scale); //#81dae4 #5da9ae ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(1 * scale, 0); ctx.moveTo(7.5999908447265625 * scale, 86.34999084472656 * scale); ctx.bezierCurveTo(12.599990844726562 * scale, 85.34999084472656 * scale, 14.599990844726562 * scale, 84.34999084472656 * scale, 13.599990844726562 * scale, 84.34999084472656 * scale); ctx.bezierCurveTo(21.599990844726562 * scale, 83.34999084472656 * scale, 21.599990844726562 * scale, 83.34999084472656 * scale, 29.599990844726562 * scale, 82.34999084472656 * scale); ctx.bezierCurveTo(33.59999084472656 * scale, 85.84999084472656 * scale, 33.59999084472656 * scale, 85.84999084472656 * scale, 37.59999084472656 * scale, 89.34999084472656 * scale); ctx.bezierCurveTo(34.09999084472656 * scale, 91.84999084472656 * scale, 34.09999084472656 * scale, 91.84999084472656 * scale, 30.599990844726562 * scale, 94.34999084472656 * scale); ctx.bezierCurveTo(21.099990844726562 * scale, 93.34999084472656 * scale, 21.099990844726562 * scale, 93.34999084472656 * scale, 11.599990844726562 * scale, 92.34999084472656 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 3 * scale); //#81dae4 #5da9ae ctx.save(); ctx.translate(23.599990844726562 * scale, 110.94999694824219 * scale); ctx.rotate(0); round_rect(ctx, -7 * scale, -4 * scale, 14 * scale, 8 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 3 * scale); //#81dae4 #5da9ae return can; } function create_cursed_sword(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 65 * scale; can.height = 131 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(3, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(19.25 * scale, 57.9375 * scale, 19.25 * scale, 57.9375 * scale, 17.25 * scale, 26.9375 * scale); ctx.bezierCurveTo(24.25 * scale, 20.9375 * scale, 24.25 * scale, 20.9375 * scale, 31.25 * scale, 14.9375 * scale); ctx.bezierCurveTo(32.75 * scale, 54.4375 * scale, 32.75 * scale, 54.4375 * scale, 34.25 * scale, 93.9375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#f00000 #852f2d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30.25 * scale, 5.9375 * scale); ctx.bezierCurveTo(39.25 * scale, 14.9375 * scale, 39.25 * scale, 14.9375 * scale, 48.25 * scale, 23.9375 * scale); ctx.bezierCurveTo(44.75 * scale, 56.4375 * scale, 44.75 * scale, 56.4375 * scale, 41.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(36.25 * scale, 88.9375 * scale, 36.25 * scale, 88.9375 * scale, 31.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(30.75 * scale, 47.9375 * scale, 30.75 * scale, 47.9375 * scale, 30.25 * scale, 6.9375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#f00000 #852f2d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(7.25 * scale, 85.4375 * scale); ctx.bezierCurveTo(31.75 * scale, 85.4375 * scale, 31.75 * scale, 85.4375 * scale, 56.25 * scale, 85.4375 * scale); ctx.bezierCurveTo(51.25 * scale, 91.9375 * scale, 51.25 * scale, 91.9375 * scale, 46.25 * scale, 98.4375 * scale); ctx.bezierCurveTo(30.25 * scale, 98.4375 * scale, 30.25 * scale, 98.4375 * scale, 14.25 * scale, 98.4375 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 4 * scale); //#f00000 #852f2d ctx.save(); ctx.translate(31.25 * scale, 108.9375 * scale); round_rect(ctx, -6 * scale, -14.5 * scale, 12 * scale, 29 * scale, 10 * scale); ctx.restore(); ctx.globalAlpha = 1; ctx.translate(-3, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(21.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(19.25 * scale, 57.9375 * scale, 19.25 * scale, 57.9375 * scale, 17.25 * scale, 26.9375 * scale); ctx.bezierCurveTo(24.25 * scale, 20.9375 * scale, 24.25 * scale, 20.9375 * scale, 31.25 * scale, 14.9375 * scale); ctx.bezierCurveTo(32.75 * scale, 54.4375 * scale, 32.75 * scale, 54.4375 * scale, 34.25 * scale, 93.9375 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#f00000 #852f2d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(30.25 * scale, 5.9375 * scale); ctx.bezierCurveTo(39.25 * scale, 14.9375 * scale, 39.25 * scale, 14.9375 * scale, 48.25 * scale, 23.9375 * scale); ctx.bezierCurveTo(44.75 * scale, 56.4375 * scale, 44.75 * scale, 56.4375 * scale, 41.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(36.25 * scale, 88.9375 * scale, 36.25 * scale, 88.9375 * scale, 31.25 * scale, 88.9375 * scale); ctx.bezierCurveTo(30.75 * scale, 47.9375 * scale, 30.75 * scale, 47.9375 * scale, 30.25 * scale, 6.9375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 4 * scale); //#f00000 #852f2d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(7.25 * scale, 85.4375 * scale); ctx.bezierCurveTo(31.75 * scale, 85.4375 * scale, 31.75 * scale, 85.4375 * scale, 56.25 * scale, 85.4375 * scale); ctx.bezierCurveTo(51.25 * scale, 91.9375 * scale, 51.25 * scale, 91.9375 * scale, 46.25 * scale, 98.4375 * scale); ctx.bezierCurveTo(30.25 * scale, 98.4375 * scale, 30.25 * scale, 98.4375 * scale, 14.25 * scale, 98.4375 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#f00000 #852f2d ctx.save(); ctx.translate(31.25 * scale, 108.9375 * scale); round_rect(ctx, -6 * scale, -14.5 * scale, 12 * scale, 29 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4], color[5], 4 * scale); //#f00000 #852f2d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.25 * scale, 73.4375 * scale); ctx.bezierCurveTo(33.25 * scale, 77.9375 * scale, 33.25 * scale, 77.9375 * scale, 35.25 * scale, 82.4375 * scale); ctx.bezierCurveTo(33.25 * scale, 87.4375 * scale, 33.25 * scale, 87.4375 * scale, 31.25 * scale, 92.4375 * scale); ctx.bezierCurveTo(29.25 * scale, 87.9375 * scale, 29.25 * scale, 87.9375 * scale, 27.25 * scale, 83.4375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[1], 2 * scale); //#f00000 #852f2d return can; } function create_shop(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = scale * 120; var h = scale * 140; can.width = w; can.height = h; can.width = 130 * scale; can.height = 120 * scale; round_rect(ctx, 10 * scale, 12 * scale, 110 * scale, 90 * scale, 10 * scale); fill_path(ctx, color[0]); //#ececec #000000 round_rect(ctx, 10 * scale, 5 * scale, 110 * scale, 90 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#ececec #000000 var img = create_rotated_img(-window.Math.PI / 5, create_pickaxe(scale * 0.5, true, ["rgba(255, 255, 255, 0)", "rgba(255, 255, 255, 0)", "rgba(255, 255, 255, 0)", "#FFF", "#FFF", "#FFF", "#FFF"])); ctx.drawImage(img, 12 * scale, 18 * scale); var img = create_rotated_img(PI4D, create_hammer(scale * 0.55, true, ["rgba(255, 255, 255, 0)", "#FFF", "#FFF", "#FFF", "#FFF"])); ctx.drawImage(img, 36 * scale, 16 * scale); return can; } function create_blue_orb(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 137 * scale; can.height = 129 * scale; ctx.globalAlpha = 0.5; circle(ctx, 69 * scale, 64 * scale, 48.16637831516918 * scale); fill_path(ctx, color[1]); //#9e793d #5f461f ctx.globalAlpha = 0.7; circle(ctx, 69 * scale, 64 * scale, 38.23105625617661 * scale); fill_path(ctx, color[2]); //#9e793d #5f461f ctx.globalAlpha = 0.7; circle(ctx, 69 * scale, 64 * scale, 32.01562118716424 * scale); fill_path(ctx, color[2], color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72 * scale, 41 * scale); ctx.bezierCurveTo(52 * scale, 41 * scale, 48 * scale, 50 * scale, 45 * scale, 58 * scale); ctx.bezierCurveTo(43 * scale, 67 * scale, 45 * scale, 68 * scale, 46 * scale, 72 * scale); ctx.bezierCurveTo(52 * scale, 53 * scale, 60 * scale, 48 * scale, 72 * scale, 42 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93 * scale, 62 * scale); ctx.bezierCurveTo(95 * scale, 72 * scale, 90 * scale, 81 * scale, 81 * scale, 87 * scale); ctx.bezierCurveTo(74 * scale, 91 * scale, 69 * scale, 89 * scale, 64 * scale, 88 * scale); ctx.bezierCurveTo(77 * scale, 83 * scale, 84 * scale, 82 * scale, 92 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f return can; } function create_dragon_cube(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 137 * scale; can.height = 129 * scale; ctx.globalAlpha = 0.4; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.000030517578125 * scale, 41.17047119140625 * scale); ctx.bezierCurveTo(45.000030517578125 * scale, 38.17047119140625 * scale, 49.000030517578125 * scale, 37.17047119140625 * scale, 62.000030517578125 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 38.17047119140625 * scale, 78.00003051757812 * scale, 38.17047119140625 * scale, 94.00003051757812 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 38.17047119140625 * scale, 102.00003051757812 * scale, 38.17047119140625 * scale, 101.00003051757812 * scale, 47.17047119140625 * scale); ctx.bezierCurveTo(101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 80.17047119140625 * scale); ctx.bezierCurveTo(102.00003051757812 * scale, 84.17047119140625 * scale, 100.00003051757812 * scale, 86.17047119140625 * scale, 95.00003051757812 * scale, 88.17047119140625 * scale); ctx.bezierCurveTo(84.00003051757812 * scale, 94.17047119140625 * scale, 89.00003051757812 * scale, 94.17047119140625 * scale, 79.00003051757812 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 94.17047119140625 * scale, 59.500030517578125 * scale, 94.17047119140625 * scale, 40.000030517578125 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 86.17047119140625 * scale); ctx.bezierCurveTo(34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 53.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 47.17047119140625 * scale, 34.000030517578125 * scale, 47.17047119140625 * scale, 40.000030517578125 * scale, 42.17047119140625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 40 * scale); //#9e793d #5f461f ctx.globalAlpha = 0.4; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.000030517578125 * scale, 41.17047119140625 * scale); ctx.bezierCurveTo(45.000030517578125 * scale, 38.17047119140625 * scale, 49.000030517578125 * scale, 37.17047119140625 * scale, 62.000030517578125 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 38.17047119140625 * scale, 78.00003051757812 * scale, 38.17047119140625 * scale, 94.00003051757812 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 38.17047119140625 * scale, 102.00003051757812 * scale, 38.17047119140625 * scale, 101.00003051757812 * scale, 47.17047119140625 * scale); ctx.bezierCurveTo(101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 80.17047119140625 * scale); ctx.bezierCurveTo(102.00003051757812 * scale, 84.17047119140625 * scale, 100.00003051757812 * scale, 86.17047119140625 * scale, 95.00003051757812 * scale, 88.17047119140625 * scale); ctx.bezierCurveTo(84.00003051757812 * scale, 94.17047119140625 * scale, 89.00003051757812 * scale, 94.17047119140625 * scale, 79.00003051757812 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 94.17047119140625 * scale, 59.500030517578125 * scale, 94.17047119140625 * scale, 40.000030517578125 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 86.17047119140625 * scale); ctx.bezierCurveTo(34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 53.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 47.17047119140625 * scale, 34.000030517578125 * scale, 47.17047119140625 * scale, 40.000030517578125 * scale, 42.17047119140625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 20 * scale); //#9e793d #5f461f ctx.globalAlpha = 0.8; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.000030517578125 * scale, 41.17047119140625 * scale); ctx.bezierCurveTo(45.000030517578125 * scale, 38.17047119140625 * scale, 49.000030517578125 * scale, 37.17047119140625 * scale, 62.000030517578125 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 38.17047119140625 * scale, 78.00003051757812 * scale, 38.17047119140625 * scale, 94.00003051757812 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 38.17047119140625 * scale, 102.00003051757812 * scale, 38.17047119140625 * scale, 101.00003051757812 * scale, 47.17047119140625 * scale); ctx.bezierCurveTo(101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 80.17047119140625 * scale); ctx.bezierCurveTo(102.00003051757812 * scale, 84.17047119140625 * scale, 100.00003051757812 * scale, 86.17047119140625 * scale, 95.00003051757812 * scale, 88.17047119140625 * scale); ctx.bezierCurveTo(84.00003051757812 * scale, 94.17047119140625 * scale, 89.00003051757812 * scale, 94.17047119140625 * scale, 79.00003051757812 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 94.17047119140625 * scale, 59.500030517578125 * scale, 94.17047119140625 * scale, 40.000030517578125 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 86.17047119140625 * scale); ctx.bezierCurveTo(34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 53.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 47.17047119140625 * scale, 34.000030517578125 * scale, 47.17047119140625 * scale, 40.000030517578125 * scale, 42.17047119140625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(51.000030517578125 * scale, 37.9886474609375 * scale); ctx.bezierCurveTo(51.000030517578125 * scale, 61.9886474609375 * scale, 51.000030517578125 * scale, 61.9886474609375 * scale, 51.000030517578125 * scale, 85.9886474609375 * scale); ctx.bezierCurveTo(75.50003051757812 * scale, 85.9886474609375 * scale, 75.50003051757812 * scale, 85.9886474609375 * scale, 100.00003051757812 * scale, 85.9886474609375 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 61.9886474609375 * scale, 100.00003051757812 * scale, 61.9886474609375 * scale, 100.00003051757812 * scale, 37.9886474609375 * scale); ctx.bezierCurveTo(76.00003051757812 * scale, 37.9886474609375 * scale, 76.00003051757812 * scale, 37.9886474609375 * scale, 52.000030517578125 * scale, 37.9886474609375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99.00003051757812 * scale, 38.9886474609375 * scale); ctx.bezierCurveTo(93.50003051757812 * scale, 44.9886474609375 * scale, 93.50003051757812 * scale, 44.9886474609375 * scale, 88.00003051757812 * scale, 50.9886474609375 * scale); ctx.bezierCurveTo(88.00003051757812 * scale, 72.4886474609375 * scale, 88.00003051757812 * scale, 72.4886474609375 * scale, 88.00003051757812 * scale, 93.9886474609375 * scale); ctx.bezierCurveTo(94.00003051757812 * scale, 90.4886474609375 * scale, 94.00003051757812 * scale, 90.4886474609375 * scale, 100.00003051757812 * scale, 86.9886474609375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.00003051757812 * scale, 49.625 * scale); ctx.bezierCurveTo(61.000030517578125 * scale, 49.625 * scale, 61.000030517578125 * scale, 49.625 * scale, 35.000030517578125 * scale, 49.625 * scale); ctx.bezierCurveTo(35.000030517578125 * scale, 70.625 * scale, 35.000030517578125 * scale, 70.625 * scale, 35.000030517578125 * scale, 91.625 * scale); ctx.bezierCurveTo(60.500030517578125 * scale, 91.625 * scale, 60.500030517578125 * scale, 91.625 * scale, 86.00003051757812 * scale, 91.625 * scale); ctx.bezierCurveTo(86.50003051757812 * scale, 70.625 * scale, 86.50003051757812 * scale, 70.625 * scale, 87.00003051757812 * scale, 49.625 * scale); ctx.closePath(); fill_path(ctx, color[1], color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(47.000030517578125 * scale, 36.625 * scale); ctx.bezierCurveTo(73.00003051757812 * scale, 37.125 * scale, 73.00003051757812 * scale, 37.125 * scale, 99.00003051757812 * scale, 37.625 * scale); ctx.bezierCurveTo(93.50003051757812 * scale, 44.125 * scale, 93.50003051757812 * scale, 44.125 * scale, 88.00003051757812 * scale, 50.625 * scale); ctx.bezierCurveTo(60.500030517578125 * scale, 50.125 * scale, 60.500030517578125 * scale, 50.125 * scale, 33.000030517578125 * scale, 49.625 * scale); ctx.closePath(); fill_path(ctx, color[1], color[3], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53.000030517578125 * scale, 52.625 * scale); ctx.bezierCurveTo(40.000030517578125 * scale, 54.625 * scale, 39.000030517578125 * scale, 59.625 * scale, 40.000030517578125 * scale, 67.625 * scale); ctx.bezierCurveTo(45.000030517578125 * scale, 59.625 * scale, 48.000030517578125 * scale, 58.625 * scale, 54.000030517578125 * scale, 53.625 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.000030517578125 * scale, 41.17047119140625 * scale); ctx.bezierCurveTo(45.000030517578125 * scale, 38.17047119140625 * scale, 49.000030517578125 * scale, 37.17047119140625 * scale, 62.000030517578125 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 38.17047119140625 * scale, 78.00003051757812 * scale, 38.17047119140625 * scale, 94.00003051757812 * scale, 38.17047119140625 * scale); ctx.bezierCurveTo(100.00003051757812 * scale, 38.17047119140625 * scale, 102.00003051757812 * scale, 38.17047119140625 * scale, 101.00003051757812 * scale, 47.17047119140625 * scale); ctx.bezierCurveTo(101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 63.67047119140625 * scale, 101.00003051757812 * scale, 80.17047119140625 * scale); ctx.bezierCurveTo(102.00003051757812 * scale, 84.17047119140625 * scale, 100.00003051757812 * scale, 86.17047119140625 * scale, 95.00003051757812 * scale, 88.17047119140625 * scale); ctx.bezierCurveTo(84.00003051757812 * scale, 94.17047119140625 * scale, 89.00003051757812 * scale, 94.17047119140625 * scale, 79.00003051757812 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 94.17047119140625 * scale, 59.500030517578125 * scale, 94.17047119140625 * scale, 40.000030517578125 * scale, 94.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 94.17047119140625 * scale, 34.000030517578125 * scale, 86.17047119140625 * scale); ctx.bezierCurveTo(34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 69.67047119140625 * scale, 34.000030517578125 * scale, 53.17047119140625 * scale); ctx.bezierCurveTo(33.000030517578125 * scale, 47.17047119140625 * scale, 34.000030517578125 * scale, 47.17047119140625 * scale, 40.000030517578125 * scale, 42.17047119140625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 4 * scale); //#9e793d #5f461f return can; } function create_kraken(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 376 * scale; can.height = 371 * scale; ctx.globalAlpha = 0.5; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(191.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(215.633544921875 * scale, 85.98580932617188 * scale, 187.633544921875 * scale, 71.98580932617188 * scale, 202.633544921875 * scale, 19.985809326171875 * scale); ctx.bezierCurveTo(231.633544921875 * scale, 68.98580932617188 * scale, 253.633544921875 * scale, 71.98580932617188 * scale, 256.633544921875 * scale, 93.98580932617188 * scale); ctx.bezierCurveTo(306.633544921875 * scale, 64.98580932617188 * scale, 319.633544921875 * scale, 61.985809326171875 * scale, 350.633544921875 * scale, 58.985809326171875 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 86.98580932617188 * scale, 281.633544921875 * scale, 106.98580932617188 * scale, 268.633544921875 * scale, 130.98580932617188 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 158.98580932617188 * scale, 328.633544921875 * scale, 155.98580932617188 * scale, 353.633544921875 * scale, 90.98580932617188 * scale); ctx.bezierCurveTo(371.633544921875 * scale, 158.98580932617188 * scale, 337.633544921875 * scale, 210.98580932617188 * scale, 286.633544921875 * scale, 209.98580932617188 * scale); ctx.bezierCurveTo(323.633544921875 * scale, 230.98580932617188 * scale, 317.633544921875 * scale, 274.9858093261719 * scale, 356.633544921875 * scale, 305.9858093261719 * scale); ctx.bezierCurveTo(288.633544921875 * scale, 297.9858093261719 * scale, 288.633544921875 * scale, 265.9858093261719 * scale, 275.633544921875 * scale, 266.9858093261719 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 294.9858093261719 * scale, 315.633544921875 * scale, 306.9858093261719 * scale, 336.633544921875 * scale, 316.9858093261719 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 318.9858093261719 * scale, 264.633544921875 * scale, 302.9858093261719 * scale, 254.633544921875 * scale, 289.9858093261719 * scale); ctx.bezierCurveTo(252.633544921875 * scale, 301.9858093261719 * scale, 224.633544921875 * scale, 315.9858093261719 * scale, 201.633544921875 * scale, 356.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 313.9858093261719 * scale, 195.633544921875 * scale, 308.9858093261719 * scale, 196.633544921875 * scale, 307.9858093261719 * scale); ctx.bezierCurveTo(197.633544921875 * scale, 289.9858093261719 * scale, 207.633544921875 * scale, 283.9858093261719 * scale, 195.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(182.633544921875 * scale, 282.9858093261719 * scale, 190.633544921875 * scale, 287.9858093261719 * scale, 193.633544921875 * scale, 297.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 306.9858093261719 * scale, 191.633544921875 * scale, 334.9858093261719 * scale, 187.633544921875 * scale, 354.9858093261719 * scale); ctx.bezierCurveTo(165.633544921875 * scale, 320.9858093261719 * scale, 138.633544921875 * scale, 307.9858093261719 * scale, 135.633544921875 * scale, 288.9858093261719 * scale); ctx.bezierCurveTo(110.633544921875 * scale, 318.9858093261719 * scale, 68.633544921875 * scale, 323.9858093261719 * scale, 49.633544921875 * scale, 320.9858093261719 * scale); ctx.bezierCurveTo(88.633544921875 * scale, 308.9858093261719 * scale, 108.633544921875 * scale, 284.9858093261719 * scale, 118.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(86.633544921875 * scale, 264.9858093261719 * scale, 75.633544921875 * scale, 310.9858093261719 * scale, 19.633544921875 * scale, 304.9858093261719 * scale); ctx.bezierCurveTo(54.633544921875 * scale, 276.9858093261719 * scale, 59.633544921875 * scale, 214.98580932617188 * scale, 105.633544921875 * scale, 205.98580932617188 * scale); ctx.bezierCurveTo(14.633544921875 * scale, 201.98580932617188 * scale, 24.633544921875 * scale, 141.98580932617188 * scale, 25.633544921875 * scale, 82.98580932617188 * scale); ctx.bezierCurveTo(49.633544921875 * scale, 168.98580932617188 * scale, 87.633544921875 * scale, 141.98580932617188 * scale, 112.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(95.633544921875 * scale, 75.98580932617188 * scale, 70.633544921875 * scale, 68.98580932617188 * scale, 35.633544921875 * scale, 50.985809326171875 * scale); ctx.bezierCurveTo(70.633544921875 * scale, 53.985809326171875 * scale, 102.633544921875 * scale, 65.98580932617188 * scale, 125.633544921875 * scale, 84.98580932617188 * scale); ctx.bezierCurveTo(133.633544921875 * scale, 69.98580932617188 * scale, 166.633544921875 * scale, 42.985809326171875 * scale, 176.633544921875 * scale, 21.985809326171875 * scale); ctx.bezierCurveTo(185.633544921875 * scale, 49.985809326171875 * scale, 168.633544921875 * scale, 95.98580932617188 * scale, 191.633544921875 * scale, 121.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#ffffff #44fd51 ctx.globalAlpha = 1; ctx.translate(-4 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(191.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(215.633544921875 * scale, 85.98580932617188 * scale, 187.633544921875 * scale, 71.98580932617188 * scale, 202.633544921875 * scale, 19.985809326171875 * scale); ctx.bezierCurveTo(231.633544921875 * scale, 68.98580932617188 * scale, 253.633544921875 * scale, 71.98580932617188 * scale, 256.633544921875 * scale, 93.98580932617188 * scale); ctx.bezierCurveTo(306.633544921875 * scale, 64.98580932617188 * scale, 319.633544921875 * scale, 61.985809326171875 * scale, 350.633544921875 * scale, 58.985809326171875 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 86.98580932617188 * scale, 281.633544921875 * scale, 106.98580932617188 * scale, 268.633544921875 * scale, 130.98580932617188 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 158.98580932617188 * scale, 328.633544921875 * scale, 155.98580932617188 * scale, 353.633544921875 * scale, 90.98580932617188 * scale); ctx.bezierCurveTo(371.633544921875 * scale, 158.98580932617188 * scale, 337.633544921875 * scale, 210.98580932617188 * scale, 286.633544921875 * scale, 209.98580932617188 * scale); ctx.bezierCurveTo(323.633544921875 * scale, 230.98580932617188 * scale, 317.633544921875 * scale, 274.9858093261719 * scale, 356.633544921875 * scale, 305.9858093261719 * scale); ctx.bezierCurveTo(288.633544921875 * scale, 297.9858093261719 * scale, 288.633544921875 * scale, 265.9858093261719 * scale, 275.633544921875 * scale, 266.9858093261719 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 294.9858093261719 * scale, 315.633544921875 * scale, 306.9858093261719 * scale, 336.633544921875 * scale, 316.9858093261719 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 318.9858093261719 * scale, 264.633544921875 * scale, 302.9858093261719 * scale, 254.633544921875 * scale, 289.9858093261719 * scale); ctx.bezierCurveTo(252.633544921875 * scale, 301.9858093261719 * scale, 224.633544921875 * scale, 315.9858093261719 * scale, 201.633544921875 * scale, 356.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 313.9858093261719 * scale, 195.633544921875 * scale, 308.9858093261719 * scale, 196.633544921875 * scale, 307.9858093261719 * scale); ctx.bezierCurveTo(197.633544921875 * scale, 289.9858093261719 * scale, 207.633544921875 * scale, 283.9858093261719 * scale, 195.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(182.633544921875 * scale, 282.9858093261719 * scale, 190.633544921875 * scale, 287.9858093261719 * scale, 193.633544921875 * scale, 297.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 306.9858093261719 * scale, 191.633544921875 * scale, 334.9858093261719 * scale, 187.633544921875 * scale, 354.9858093261719 * scale); ctx.bezierCurveTo(165.633544921875 * scale, 320.9858093261719 * scale, 138.633544921875 * scale, 307.9858093261719 * scale, 135.633544921875 * scale, 288.9858093261719 * scale); ctx.bezierCurveTo(110.633544921875 * scale, 318.9858093261719 * scale, 68.633544921875 * scale, 323.9858093261719 * scale, 49.633544921875 * scale, 320.9858093261719 * scale); ctx.bezierCurveTo(88.633544921875 * scale, 308.9858093261719 * scale, 108.633544921875 * scale, 284.9858093261719 * scale, 118.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(86.633544921875 * scale, 264.9858093261719 * scale, 75.633544921875 * scale, 310.9858093261719 * scale, 19.633544921875 * scale, 304.9858093261719 * scale); ctx.bezierCurveTo(54.633544921875 * scale, 276.9858093261719 * scale, 59.633544921875 * scale, 214.98580932617188 * scale, 105.633544921875 * scale, 205.98580932617188 * scale); ctx.bezierCurveTo(14.633544921875 * scale, 201.98580932617188 * scale, 24.633544921875 * scale, 141.98580932617188 * scale, 25.633544921875 * scale, 82.98580932617188 * scale); ctx.bezierCurveTo(49.633544921875 * scale, 168.98580932617188 * scale, 87.633544921875 * scale, 141.98580932617188 * scale, 112.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(95.633544921875 * scale, 75.98580932617188 * scale, 70.633544921875 * scale, 68.98580932617188 * scale, 35.633544921875 * scale, 50.985809326171875 * scale); ctx.bezierCurveTo(70.633544921875 * scale, 53.985809326171875 * scale, 102.633544921875 * scale, 65.98580932617188 * scale, 125.633544921875 * scale, 84.98580932617188 * scale); ctx.bezierCurveTo(133.633544921875 * scale, 69.98580932617188 * scale, 166.633544921875 * scale, 42.985809326171875 * scale, 176.633544921875 * scale, 21.985809326171875 * scale); ctx.bezierCurveTo(185.633544921875 * scale, 49.985809326171875 * scale, 168.633544921875 * scale, 95.98580932617188 * scale, 191.633544921875 * scale, 121.98580932617188 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 12 * scale); //#ffffff #44fd51 /*spike*/ ctx.translate(-1 * scale, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(270.633544921875 * scale, 88.98580932617188 * scale); ctx.bezierCurveTo(296.633544921875 * scale, 65.98580932617188 * scale, 318.633544921875 * scale, 62.985809326171875 * scale, 348.633544921875 * scale, 57.985809326171875 * scale); ctx.bezierCurveTo(309.633544921875 * scale, 76.98580932617188 * scale, 291.633544921875 * scale, 88.98580932617188 * scale, 280.633544921875 * scale, 99.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(275.633544921875 * scale, 281.9858093261719 * scale); ctx.bezierCurveTo(303.633544921875 * scale, 308.9858093261719 * scale, 321.633544921875 * scale, 308.9858093261719 * scale, 335.633544921875 * scale, 315.9858093261719 * scale); ctx.bezierCurveTo(305.633544921875 * scale, 320.9858093261719 * scale, 278.633544921875 * scale, 307.9858093261719 * scale, 264.633544921875 * scale, 293.9858093261719 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(124.633544921875 * scale, 291.9858093261719 * scale); ctx.bezierCurveTo(106.633544921875 * scale, 316.9858093261719 * scale, 72.633544921875 * scale, 325.9858093261719 * scale, 53.633544921875 * scale, 319.9858093261719 * scale); ctx.bezierCurveTo(83.633544921875 * scale, 308.9858093261719 * scale, 97.633544921875 * scale, 298.9858093261719 * scale, 112.633544921875 * scale, 284.9858093261719 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(113.633544921875 * scale, 80.98580932617188 * scale); ctx.bezierCurveTo(91.633544921875 * scale, 54.985809326171875 * scale, 72.633544921875 * scale, 56.985809326171875 * scale, 36.633544921875 * scale, 49.985809326171875 * scale); ctx.bezierCurveTo(87.633544921875 * scale, 72.98580932617188 * scale, 95.633544921875 * scale, 82.98580932617188 * scale, 106.633544921875 * scale, 96.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(202.633544921875 * scale, 20.985809326171875 * scale); ctx.bezierCurveTo(219.633544921875 * scale, 49.985809326171875 * scale, 259.633544921875 * scale, 80.98580932617188 * scale, 255.633544921875 * scale, 92.98580932617188 * scale); ctx.bezierCurveTo(268.633544921875 * scale, 86.98580932617188 * scale, 265.633544921875 * scale, 87.98580932617188 * scale, 275.633544921875 * scale, 82.98580932617188 * scale); ctx.bezierCurveTo(283.633544921875 * scale, 87.98580932617188 * scale, 283.633544921875 * scale, 87.98580932617188 * scale, 291.633544921875 * scale, 92.98580932617188 * scale); ctx.bezierCurveTo(269.633544921875 * scale, 116.98580932617188 * scale, 270.633544921875 * scale, 124.98580932617188 * scale, 267.633544921875 * scale, 130.98580932617188 * scale); ctx.bezierCurveTo(307.633544921875 * scale, 168.98580932617188 * scale, 339.633544921875 * scale, 132.98580932617188 * scale, 352.633544921875 * scale, 93.98580932617188 * scale); ctx.bezierCurveTo(366.633544921875 * scale, 145.98580932617188 * scale, 345.633544921875 * scale, 207.98580932617188 * scale, 286.633544921875 * scale, 208.98580932617188 * scale); ctx.bezierCurveTo(315.633544921875 * scale, 223.98580932617188 * scale, 327.633544921875 * scale, 287.9858093261719 * scale, 355.633544921875 * scale, 305.9858093261719 * scale); ctx.bezierCurveTo(293.633544921875 * scale, 298.9858093261719 * scale, 293.633544921875 * scale, 275.9858093261719 * scale, 276.633544921875 * scale, 266.9858093261719 * scale); ctx.bezierCurveTo(274.633544921875 * scale, 282.9858093261719 * scale, 287.633544921875 * scale, 288.9858093261719 * scale, 295.633544921875 * scale, 296.9858093261719 * scale); ctx.bezierCurveTo(287.133544921875 * scale, 302.4858093261719 * scale, 287.133544921875 * scale, 302.4858093261719 * scale, 278.633544921875 * scale, 307.9858093261719 * scale); ctx.bezierCurveTo(261.633544921875 * scale, 297.9858093261719 * scale, 258.633544921875 * scale, 293.9858093261719 * scale, 255.633544921875 * scale, 290.9858093261719 * scale); ctx.bezierCurveTo(249.633544921875 * scale, 301.9858093261719 * scale, 225.633544921875 * scale, 320.9858093261719 * scale, 202.633544921875 * scale, 354.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 318.9858093261719 * scale, 196.633544921875 * scale, 306.9858093261719 * scale, 198.633544921875 * scale, 300.9858093261719 * scale); ctx.bezierCurveTo(209.633544921875 * scale, 268.9858093261719 * scale, 199.633544921875 * scale, 266.9858093261719 * scale, 195.633544921875 * scale, 256.9858093261719 * scale); ctx.bezierCurveTo(183.633544921875 * scale, 274.9858093261719 * scale, 182.633544921875 * scale, 281.9858093261719 * scale, 192.633544921875 * scale, 305.9858093261719 * scale); ctx.bezierCurveTo(194.633544921875 * scale, 317.9858093261719 * scale, 191.633544921875 * scale, 336.9858093261719 * scale, 186.633544921875 * scale, 351.9858093261719 * scale); ctx.bezierCurveTo(166.633544921875 * scale, 318.9858093261719 * scale, 141.633544921875 * scale, 303.9858093261719 * scale, 136.633544921875 * scale, 286.9858093261719 * scale); ctx.bezierCurveTo(122.633544921875 * scale, 303.9858093261719 * scale, 115.633544921875 * scale, 305.9858093261719 * scale, 109.633544921875 * scale, 306.9858093261719 * scale); ctx.bezierCurveTo(101.133544921875 * scale, 301.9858093261719 * scale, 94.633544921875 * scale, 297.9858093261719 * scale, 92.633544921875 * scale, 296.9858093261719 * scale); ctx.bezierCurveTo(116.633544921875 * scale, 277.9858093261719 * scale, 116.633544921875 * scale, 266.9858093261719 * scale, 119.633544921875 * scale, 257.9858093261719 * scale); ctx.bezierCurveTo(107.633544921875 * scale, 257.9858093261719 * scale, 65.633544921875 * scale, 308.9858093261719 * scale, 24.633544921875 * scale, 303.9858093261719 * scale); ctx.bezierCurveTo(51.633544921875 * scale, 275.9858093261719 * scale, 64.633544921875 * scale, 220.98580932617188 * scale, 108.633544921875 * scale, 205.98580932617188 * scale); ctx.bezierCurveTo(14.633544921875 * scale, 198.98580932617188 * scale, 26.633544921875 * scale, 142.98580932617188 * scale, 25.633544921875 * scale, 86.98580932617188 * scale); ctx.bezierCurveTo(41.633544921875 * scale, 155.98580932617188 * scale, 81.633544921875 * scale, 148.98580932617188 * scale, 113.633544921875 * scale, 124.98580932617188 * scale); ctx.bezierCurveTo(102.633544921875 * scale, 93.98580932617188 * scale, 95.633544921875 * scale, 88.98580932617188 * scale, 89.633544921875 * scale, 81.98580932617188 * scale); ctx.bezierCurveTo(97.633544921875 * scale, 76.48580932617188 * scale, 97.633544921875 * scale, 76.48580932617188 * scale, 105.633544921875 * scale, 70.98580932617188 * scale); ctx.bezierCurveTo(120.633544921875 * scale, 78.98580932617188 * scale, 121.633544921875 * scale, 81.98580932617188 * scale, 124.633544921875 * scale, 86.98580932617188 * scale); ctx.bezierCurveTo(132.633544921875 * scale, 71.98580932617188 * scale, 160.633544921875 * scale, 56.985809326171875 * scale, 175.633544921875 * scale, 23.985809326171875 * scale); ctx.bezierCurveTo(182.633544921875 * scale, 53.985809326171875 * scale, 170.633544921875 * scale, 102.98580932617188 * scale, 191.633544921875 * scale, 125.98580932617188 * scale); ctx.bezierCurveTo(214.633544921875 * scale, 89.98580932617188 * scale, 192.633544921875 * scale, 58.985809326171875 * scale, 202.633544921875 * scale, 20.985809326171875 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 5 * scale); //#ff342d /*tentacule*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203.633544921875 * scale, 21.985809326171875 * scale); ctx.bezierCurveTo(223.633544921875 * scale, 63.985809326171875 * scale, 227.633544921875 * scale, 72.98580932617188 * scale, 235.633544921875 * scale, 98.98580932617188 * scale); ctx.bezierCurveTo(241.633544921875 * scale, 123.98580932617188 * scale, 225.633544921875 * scale, 138.98580932617188 * scale, 196.633544921875 * scale, 122.98580932617188 * scale); ctx.bezierCurveTo(213.633544921875 * scale, 93.98580932617188 * scale, 199.633544921875 * scale, 49.985809326171875 * scale, 203.633544921875 * scale, 26.985809326171875 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(175.633544921875 * scale, 25.985809326171875 * scale); ctx.bezierCurveTo(176.633544921875 * scale, 51.985809326171875 * scale, 171.633544921875 * scale, 88.98580932617188 * scale, 186.633544921875 * scale, 121.98580932617188 * scale); ctx.bezierCurveTo(156.633544921875 * scale, 144.98580932617188 * scale, 139.633544921875 * scale, 120.98580932617188 * scale, 147.633544921875 * scale, 97.98580932617188 * scale); ctx.bezierCurveTo(152.633544921875 * scale, 77.98580932617188 * scale, 162.633544921875 * scale, 60.985809326171875 * scale, 176.633544921875 * scale, 25.985809326171875 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(26.633544921875 * scale, 96.98580932617188 * scale); ctx.bezierCurveTo(38.633544921875 * scale, 151.98580932617188 * scale, 61.633544921875 * scale, 161.98580932617188 * scale, 88.633544921875 * scale, 168.98580932617188 * scale); ctx.bezierCurveTo(117.633544921875 * scale, 177.98580932617188 * scale, 113.633544921875 * scale, 185.98580932617188 * scale, 106.633544921875 * scale, 204.98580932617188 * scale); ctx.bezierCurveTo(32.633544921875 * scale, 204.98580932617188 * scale, 25.633544921875 * scale, 149.98580932617188 * scale, 25.633544921875 * scale, 97.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(351.633544921875 * scale, 99.98580932617188 * scale); ctx.bezierCurveTo(365.633544921875 * scale, 161.98580932617188 * scale, 333.633544921875 * scale, 203.98580932617188 * scale, 287.633544921875 * scale, 207.98580932617188 * scale); ctx.bezierCurveTo(255.633544921875 * scale, 208.98580932617188 * scale, 266.633544921875 * scale, 174.98580932617188 * scale, 285.633544921875 * scale, 176.98580932617188 * scale); ctx.bezierCurveTo(313.633544921875 * scale, 178.98580932617188 * scale, 348.633544921875 * scale, 135.98580932617188 * scale, 353.633544921875 * scale, 99.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f /*spike*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(350.633544921875 * scale, 302.9858093261719 * scale); ctx.bezierCurveTo(310.633544921875 * scale, 280.9858093261719 * scale, 314.633544921875 * scale, 244.98580932617188 * scale, 292.633544921875 * scale, 230.98580932617188 * scale); ctx.bezierCurveTo(272.633544921875 * scale, 215.98580932617188 * scale, 263.633544921875 * scale, 222.98580932617188 * scale, 256.633544921875 * scale, 236.98580932617188 * scale); ctx.bezierCurveTo(251.633544921875 * scale, 249.98580932617188 * scale, 264.633544921875 * scale, 255.98580932617188 * scale, 279.633544921875 * scale, 268.9858093261719 * scale); ctx.bezierCurveTo(306.633544921875 * scale, 295.9858093261719 * scale, 325.633544921875 * scale, 299.9858093261719 * scale, 349.633544921875 * scale, 302.9858093261719 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(95.633544921875 * scale, 224.98580932617188 * scale); ctx.bezierCurveTo(64.633544921875 * scale, 245.98580932617188 * scale, 62.633544921875 * scale, 280.9858093261719 * scale, 32.633544921875 * scale, 303.9858093261719 * scale); ctx.bezierCurveTo(59.633544921875 * scale, 301.9858093261719 * scale, 102.633544921875 * scale, 260.9858093261719 * scale, 116.633544921875 * scale, 255.98580932617188 * scale); ctx.bezierCurveTo(139.633544921875 * scale, 229.98580932617188 * scale, 108.633544921875 * scale, 209.98580932617188 * scale, 97.633544921875 * scale, 224.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(195.633544921875 * scale, 253.98580932617188 * scale); ctx.bezierCurveTo(209.633544921875 * scale, 282.9858093261719 * scale, 205.633544921875 * scale, 278.9858093261719 * scale, 199.633544921875 * scale, 307.9858093261719 * scale); ctx.bezierCurveTo(198.633544921875 * scale, 332.9858093261719 * scale, 201.633544921875 * scale, 340.9858093261719 * scale, 202.633544921875 * scale, 348.9858093261719 * scale); ctx.bezierCurveTo(215.633544921875 * scale, 313.9858093261719 * scale, 226.633544921875 * scale, 291.9858093261719 * scale, 235.633544921875 * scale, 270.9858093261719 * scale); ctx.bezierCurveTo(243.633544921875 * scale, 247.98580932617188 * scale, 219.633544921875 * scale, 235.98580932617188 * scale, 196.633544921875 * scale, 252.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(195.633544921875 * scale, 251.98580932617188 * scale); ctx.bezierCurveTo(176.633544921875 * scale, 275.9858093261719 * scale, 182.633544921875 * scale, 285.9858093261719 * scale, 191.633544921875 * scale, 308.9858093261719 * scale); ctx.bezierCurveTo(194.633544921875 * scale, 318.9858093261719 * scale, 190.633544921875 * scale, 334.9858093261719 * scale, 186.633544921875 * scale, 348.9858093261719 * scale); ctx.bezierCurveTo(175.633544921875 * scale, 307.9858093261719 * scale, 157.633544921875 * scale, 291.9858093261719 * scale, 155.633544921875 * scale, 272.9858093261719 * scale); ctx.bezierCurveTo(150.633544921875 * scale, 243.98580932617188 * scale, 170.633544921875 * scale, 236.98580932617188 * scale, 195.633544921875 * scale, 251.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#fcbd3f /*blob tentacule*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(316 * scale, 186.8020782470703 * scale); ctx.bezierCurveTo(315 * scale, 173.8020782470703 * scale, 298 * scale, 177.8020782470703 * scale, 293 * scale, 183.8020782470703 * scale); ctx.bezierCurveTo(285 * scale, 195.8020782470703 * scale, 314 * scale, 197.8020782470703 * scale, 315 * scale, 187.8020782470703 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(340 * scale, 157.8020782470703 * scale); ctx.bezierCurveTo(327 * scale, 153.8020782470703 * scale, 321 * scale, 168.8020782470703 * scale, 330 * scale, 174.8020782470703 * scale); ctx.bezierCurveTo(341 * scale, 178.8020782470703 * scale, 347 * scale, 161.8020782470703 * scale, 341 * scale, 157.8020782470703 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(349 * scale, 136.8020782470703 * scale); ctx.bezierCurveTo(343 * scale, 135.8020782470703 * scale, 342 * scale, 139.8020782470703 * scale, 341 * scale, 147.8020782470703 * scale); ctx.bezierCurveTo(343 * scale, 155.8020782470703 * scale, 353 * scale, 143.8020782470703 * scale, 349 * scale, 137.8020782470703 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(278.75 * scale, 246.4375 * scale); ctx.bezierCurveTo(288.75 * scale, 242.4375 * scale, 301.75 * scale, 248.4375 * scale, 298.75 * scale, 262.4375 * scale); ctx.bezierCurveTo(293.75 * scale, 271.4375 * scale, 287.75 * scale, 271.4375 * scale, 278.75 * scale, 262.4375 * scale); ctx.bezierCurveTo(271.75 * scale, 255.4375 * scale, 274.75 * scale, 250.4375 * scale, 277.75 * scale, 247.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(310.75 * scale, 277.4375 * scale); ctx.bezierCurveTo(319.75 * scale, 280.4375 * scale, 322.75 * scale, 283.4375 * scale, 321.75 * scale, 289.4375 * scale); ctx.bezierCurveTo(319.75 * scale, 295.4375 * scale, 313.75 * scale, 291.4375 * scale, 308.75 * scale, 288.4375 * scale); ctx.bezierCurveTo(301.75 * scale, 281.4375 * scale, 306.75 * scale, 277.4375 * scale, 309.75 * scale, 277.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(217.75 * scale, 257.4375 * scale); ctx.bezierCurveTo(227.75 * scale, 269.4375 * scale, 220.75 * scale, 281.4375 * scale, 212.75 * scale, 280.4375 * scale); ctx.bezierCurveTo(206.75 * scale, 279.4375 * scale, 206.75 * scale, 269.4375 * scale, 204.75 * scale, 260.4375 * scale); ctx.bezierCurveTo(204.75 * scale, 254.4375 * scale, 211.75 * scale, 253.4375 * scale, 216.75 * scale, 256.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(211.75 * scale, 289.4375 * scale); ctx.bezierCurveTo(219.75 * scale, 292.4375 * scale, 213.75 * scale, 306.4375 * scale, 206.75 * scale, 307.4375 * scale); ctx.bezierCurveTo(199.75 * scale, 303.4375 * scale, 209.75 * scale, 287.4375 * scale, 210.75 * scale, 289.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(171.75 * scale, 256.4375 * scale); ctx.bezierCurveTo(162.75 * scale, 273.4375 * scale, 166.75 * scale, 278.4375 * scale, 175.75 * scale, 280.4375 * scale); ctx.bezierCurveTo(183.75 * scale, 278.4375 * scale, 185.75 * scale, 257.4375 * scale, 182.75 * scale, 255.4375 * scale); ctx.bezierCurveTo(176.75 * scale, 251.4375 * scale, 172.75 * scale, 253.4375 * scale, 172.75 * scale, 256.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(175.75 * scale, 289.9375 * scale); ctx.bezierCurveTo(183.75 * scale, 287.9375 * scale, 186.75 * scale, 301.9375 * scale, 182.75 * scale, 305.9375 * scale); ctx.bezierCurveTo(176.75 * scale, 307.9375 * scale, 171.75 * scale, 292.9375 * scale, 174.75 * scale, 290.9375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(205.75 * scale, 314.4375 * scale); ctx.bezierCurveTo(209.75 * scale, 316.4375 * scale, 210.75 * scale, 320.4375 * scale, 206.75 * scale, 323.4375 * scale); ctx.bezierCurveTo(201.75 * scale, 324.4375 * scale, 201.75 * scale, 314.4375 * scale, 204.75 * scale, 314.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(186.75 * scale, 313.4375 * scale); ctx.bezierCurveTo(181.75 * scale, 315.4375 * scale, 180.75 * scale, 321.4375 * scale, 185.75 * scale, 326.4375 * scale); ctx.bezierCurveTo(190.75 * scale, 327.4375 * scale, 190.75 * scale, 313.4375 * scale, 187.75 * scale, 314.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103.75 * scale, 244.4375 * scale); ctx.bezierCurveTo(96.75 * scale, 239.4375 * scale, 83.75 * scale, 240.4375 * scale, 81.75 * scale, 255.4375 * scale); ctx.bezierCurveTo(80.75 * scale, 264.4375 * scale, 89.75 * scale, 269.4375 * scale, 99.75 * scale, 260.4375 * scale); ctx.bezierCurveTo(106.75 * scale, 254.4375 * scale, 106.75 * scale, 250.4375 * scale, 104.75 * scale, 245.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(86.75 * scale, 182.4375 * scale); ctx.bezierCurveTo(82.75 * scale, 170.4375 * scale, 66.75 * scale, 169.4375 * scale, 61.75 * scale, 181.4375 * scale); ctx.bezierCurveTo(58.75 * scale, 187.4375 * scale, 68.75 * scale, 194.4375 * scale, 75.75 * scale, 192.4375 * scale); ctx.bezierCurveTo(83.75 * scale, 192.4375 * scale, 86.75 * scale, 187.4375 * scale, 86.75 * scale, 183.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44.75 * scale, 152.4375 * scale); ctx.bezierCurveTo(55.75 * scale, 159.4375 * scale, 54.75 * scale, 170.4375 * scale, 46.75 * scale, 171.4375 * scale); ctx.bezierCurveTo(39.75 * scale, 170.4375 * scale, 34.75 * scale, 151.4375 * scale, 43.75 * scale, 152.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31.75 * scale, 130.4375 * scale); ctx.bezierCurveTo(35.75 * scale, 132.4375 * scale, 35.75 * scale, 131.4375 * scale, 37.75 * scale, 137.4375 * scale); ctx.bezierCurveTo(36.75 * scale, 144.4375 * scale, 36.75 * scale, 145.4375 * scale, 33.75 * scale, 144.4375 * scale); ctx.bezierCurveTo(26.75 * scale, 137.4375 * scale, 29.75 * scale, 131.4375 * scale, 31.75 * scale, 130.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(69.75 * scale, 274.4375 * scale); ctx.bezierCurveTo(62.75 * scale, 272.4375 * scale, 59.75 * scale, 277.4375 * scale, 57.75 * scale, 284.4375 * scale); ctx.bezierCurveTo(56.75 * scale, 290.4375 * scale, 63.75 * scale, 289.4375 * scale, 71.75 * scale, 282.4375 * scale); ctx.bezierCurveTo(75.75 * scale, 277.4375 * scale, 72.75 * scale, 275.4375 * scale, 69.75 * scale, 274.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(165.75 * scale, 95.4375 * scale); ctx.bezierCurveTo(177.75 * scale, 97.4375 * scale, 182.75 * scale, 115.4375 * scale, 173.75 * scale, 121.4375 * scale); ctx.bezierCurveTo(164.75 * scale, 126.4375 * scale, 149.75 * scale, 102.4375 * scale, 164.75 * scale, 96.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(216.75 * scale, 94.4375 * scale); ctx.bezierCurveTo(227.75 * scale, 99.4375 * scale, 223.75 * scale, 122.4375 * scale, 210.75 * scale, 119.4375 * scale); ctx.bezierCurveTo(203.75 * scale, 115.4375 * scale, 207.75 * scale, 93.4375 * scale, 216.75 * scale, 94.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(211.75 * scale, 68.4375 * scale); ctx.bezierCurveTo(218.75 * scale, 69.4375 * scale, 220.75 * scale, 77.4375 * scale, 216.75 * scale, 83.4375 * scale); ctx.bezierCurveTo(208.75 * scale, 89.4375 * scale, 205.75 * scale, 68.4375 * scale, 210.75 * scale, 68.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(169.75 * scale, 71.4375 * scale); ctx.bezierCurveTo(162.75 * scale, 72.4375 * scale, 159.75 * scale, 83.4375 * scale, 167.75 * scale, 88.4375 * scale); ctx.bezierCurveTo(174.75 * scale, 90.4375 * scale, 174.75 * scale, 72.4375 * scale, 170.75 * scale, 71.4375 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 4 * scale); //#7637fa /*bouche*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(193.75 * scale, 160.4375 * scale); ctx.bezierCurveTo(215.75 * scale, 168.4375 * scale, 224.75 * scale, 180.4375 * scale, 229.75 * scale, 193.4375 * scale); ctx.bezierCurveTo(223.75 * scale, 211.4375 * scale, 205.75 * scale, 225.4375 * scale, 193.75 * scale, 229.4375 * scale); ctx.bezierCurveTo(167.75 * scale, 217.4375 * scale, 161.75 * scale, 205.4375 * scale, 156.75 * scale, 192.4375 * scale); ctx.bezierCurveTo(164.75 * scale, 175.4375 * scale, 176.75 * scale, 166.4375 * scale, 192.75 * scale, 160.4375 * scale); ctx.closePath(); fill_path(ctx, color[8], color[9], 3 * scale); //#7637fa /*fond*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(189.1999969482422 * scale, 182.61249923706055 * scale); ctx.bezierCurveTo(190.1999969482422 * scale, 184.11249923706055 * scale, 190.1999969482422 * scale, 184.11249923706055 * scale, 191.1999969482422 * scale, 185.61249923706055 * scale); ctx.bezierCurveTo(192.1999969482422 * scale, 180.61249923706055 * scale, 192.1999969482422 * scale, 180.61249923706055 * scale, 193.1999969482422 * scale, 175.61249923706055 * scale); ctx.bezierCurveTo(195.6999969482422 * scale, 177.11249923706055 * scale, 195.6999969482422 * scale, 177.11249923706055 * scale, 198.1999969482422 * scale, 178.61249923706055 * scale); ctx.bezierCurveTo(198.1999969482422 * scale, 181.11249923706055 * scale, 198.1999969482422 * scale, 181.11249923706055 * scale, 198.1999969482422 * scale, 183.61249923706055 * scale); ctx.bezierCurveTo(201.6999969482422 * scale, 181.11249923706055 * scale, 201.6999969482422 * scale, 181.11249923706055 * scale, 205.1999969482422 * scale, 178.61249923706055 * scale); ctx.bezierCurveTo(206.6999969482422 * scale, 180.61249923706055 * scale, 206.6999969482422 * scale, 180.61249923706055 * scale, 208.1999969482422 * scale, 182.61249923706055 * scale); ctx.bezierCurveTo(206.1999969482422 * scale, 185.61249923706055 * scale, 206.1999969482422 * scale, 185.61249923706055 * scale, 204.1999969482422 * scale, 188.61249923706055 * scale); ctx.bezierCurveTo(208.6999969482422 * scale, 188.61249923706055 * scale, 208.6999969482422 * scale, 188.61249923706055 * scale, 213.1999969482422 * scale, 188.61249923706055 * scale); ctx.bezierCurveTo(213.1999969482422 * scale, 191.11249923706055 * scale, 213.1999969482422 * scale, 191.11249923706055 * scale, 213.1999969482422 * scale, 193.61249923706055 * scale); ctx.bezierCurveTo(209.6999969482422 * scale, 194.61249923706055 * scale, 209.6999969482422 * scale, 194.61249923706055 * scale, 206.1999969482422 * scale, 195.61249923706055 * scale); ctx.bezierCurveTo(210.1999969482422 * scale, 198.61249923706055 * scale, 210.1999969482422 * scale, 198.61249923706055 * scale, 214.1999969482422 * scale, 201.61249923706055 * scale); ctx.bezierCurveTo(212.1999969482422 * scale, 203.61249923706055 * scale, 212.1999969482422 * scale, 203.61249923706055 * scale, 210.1999969482422 * scale, 205.61249923706055 * scale); ctx.bezierCurveTo(207.1999969482422 * scale, 204.11249923706055 * scale, 207.1999969482422 * scale, 204.11249923706055 * scale, 204.1999969482422 * scale, 202.61249923706055 * scale); ctx.bezierCurveTo(205.6999969482422 * scale, 207.61249923706055 * scale, 205.6999969482422 * scale, 207.61249923706055 * scale, 207.1999969482422 * scale, 212.61249923706055 * scale); ctx.bezierCurveTo(204.6999969482422 * scale, 213.61249923706055 * scale, 204.6999969482422 * scale, 213.61249923706055 * scale, 202.1999969482422 * scale, 214.61249923706055 * scale); ctx.bezierCurveTo(200.1999969482422 * scale, 210.61249923706055 * scale, 200.1999969482422 * scale, 210.61249923706055 * scale, 198.1999969482422 * scale, 206.61249923706055 * scale); ctx.bezierCurveTo(196.6999969482422 * scale, 211.61249923706055 * scale, 196.6999969482422 * scale, 211.61249923706055 * scale, 195.1999969482422 * scale, 216.61249923706055 * scale); ctx.bezierCurveTo(192.6999969482422 * scale, 216.11249923706055 * scale, 192.6999969482422 * scale, 216.11249923706055 * scale, 190.1999969482422 * scale, 215.61249923706055 * scale); ctx.bezierCurveTo(190.1999969482422 * scale, 211.61249923706055 * scale, 190.1999969482422 * scale, 211.61249923706055 * scale, 190.1999969482422 * scale, 207.61249923706055 * scale); ctx.bezierCurveTo(186.1999969482422 * scale, 210.61249923706055 * scale, 186.1999969482422 * scale, 210.61249923706055 * scale, 182.1999969482422 * scale, 213.61249923706055 * scale); ctx.bezierCurveTo(181.1999969482422 * scale, 211.11249923706055 * scale, 181.1999969482422 * scale, 211.11249923706055 * scale, 180.1999969482422 * scale, 208.61249923706055 * scale); ctx.bezierCurveTo(183.1999969482422 * scale, 205.61249923706055 * scale, 183.1999969482422 * scale, 205.61249923706055 * scale, 186.1999969482422 * scale, 202.61249923706055 * scale); ctx.bezierCurveTo(180.6999969482422 * scale, 203.11249923706055 * scale, 180.6999969482422 * scale, 203.11249923706055 * scale, 175.1999969482422 * scale, 203.61249923706055 * scale); ctx.bezierCurveTo(174.6999969482422 * scale, 200.11249923706055 * scale, 174.6999969482422 * scale, 200.11249923706055 * scale, 174.1999969482422 * scale, 196.61249923706055 * scale); ctx.bezierCurveTo(177.1999969482422 * scale, 195.61249923706055 * scale, 177.1999969482422 * scale, 195.61249923706055 * scale, 180.1999969482422 * scale, 194.61249923706055 * scale); ctx.bezierCurveTo(177.1999969482422 * scale, 191.61249923706055 * scale, 177.1999969482422 * scale, 191.61249923706055 * scale, 174.1999969482422 * scale, 188.61249923706055 * scale); ctx.bezierCurveTo(175.6999969482422 * scale, 187.11249923706055 * scale, 175.6999969482422 * scale, 187.11249923706055 * scale, 177.1999969482422 * scale, 185.61249923706055 * scale); ctx.bezierCurveTo(180.6999969482422 * scale, 187.11249923706055 * scale, 180.6999969482422 * scale, 187.11249923706055 * scale, 184.1999969482422 * scale, 188.61249923706055 * scale); ctx.bezierCurveTo(182.6999969482422 * scale, 183.61249923706055 * scale, 182.6999969482422 * scale, 183.61249923706055 * scale, 181.1999969482422 * scale, 178.61249923706055 * scale); ctx.bezierCurveTo(183.1999969482422 * scale, 177.11249923706055 * scale, 183.1999969482422 * scale, 177.11249923706055 * scale, 185.1999969482422 * scale, 175.61249923706055 * scale); ctx.closePath(); fill_path(ctx, color[10]); //#7637fa /*dents*/ ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.1999969482422 * scale, 173.8125 * scale); ctx.bezierCurveTo(187.1999969482422 * scale, 179.3125 * scale, 187.1999969482422 * scale, 179.3125 * scale, 189.1999969482422 * scale, 184.8125 * scale); ctx.bezierCurveTo(184.1999969482422 * scale, 181.8125 * scale, 184.1999969482422 * scale, 181.8125 * scale, 179.1999969482422 * scale, 178.8125 * scale); ctx.bezierCurveTo(181.1999969482422 * scale, 175.8125 * scale, 182.1999969482422 * scale, 174.8125 * scale, 185.1999969482422 * scale, 173.8125 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(192.1999969482422 * scale, 173.61249542236328 * scale); ctx.bezierCurveTo(194.1999969482422 * scale, 172.61249542236328 * scale, 196.1999969482422 * scale, 171.61249542236328 * scale, 199.1999969482422 * scale, 173.61249542236328 * scale); ctx.bezierCurveTo(197.6999969482422 * scale, 179.61249542236328 * scale, 197.6999969482422 * scale, 179.61249542236328 * scale, 196.1999969482422 * scale, 185.61249542236328 * scale); ctx.bezierCurveTo(194.1999969482422 * scale, 179.61249542236328 * scale, 194.1999969482422 * scale, 179.61249542236328 * scale, 192.1999969482422 * scale, 173.61249542236328 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(205.1999969482422 * scale, 176.2125015258789 * scale); ctx.bezierCurveTo(210.1999969482422 * scale, 178.2125015258789 * scale, 211.1999969482422 * scale, 179.2125015258789 * scale, 211.1999969482422 * scale, 181.2125015258789 * scale); ctx.bezierCurveTo(206.6999969482422 * scale, 184.7125015258789 * scale, 206.6999969482422 * scale, 184.7125015258789 * scale, 202.1999969482422 * scale, 188.2125015258789 * scale); ctx.bezierCurveTo(203.6999969482422 * scale, 182.2125015258789 * scale, 203.6999969482422 * scale, 182.2125015258789 * scale, 205.1999969482422 * scale, 176.2125015258789 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.1999969482422 * scale, 187.21249985694885 * scale); ctx.bezierCurveTo(216.1999969482422 * scale, 191.21249985694885 * scale, 216.1999969482422 * scale, 192.21249985694885 * scale, 215.1999969482422 * scale, 195.21249985694885 * scale); ctx.bezierCurveTo(206.1999969482422 * scale, 194.21249985694885 * scale, 205.1999969482422 * scale, 194.21249985694885 * scale, 205.1999969482422 * scale, 194.21249985694885 * scale); ctx.bezierCurveTo(209.6999969482422 * scale, 190.71249985694885 * scale, 209.6999969482422 * scale, 190.71249985694885 * scale, 214.1999969482422 * scale, 187.21249985694885 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(204.1999969482422 * scale, 201.8125 * scale); ctx.bezierCurveTo(209.1999969482422 * scale, 201.3125 * scale, 209.1999969482422 * scale, 201.3125 * scale, 214.1999969482422 * scale, 200.8125 * scale); ctx.bezierCurveTo(215.1999969482422 * scale, 204.8125 * scale, 214.1999969482422 * scale, 205.8125 * scale, 213.1999969482422 * scale, 208.8125 * scale); ctx.bezierCurveTo(208.6999969482422 * scale, 205.3125 * scale, 208.6999969482422 * scale, 205.3125 * scale, 204.1999969482422 * scale, 201.8125 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(199.1999969482422 * scale, 205.61249923706055 * scale); ctx.bezierCurveTo(207.1999969482422 * scale, 212.61249923706055 * scale, 203.6999969482422 * scale, 209.11249923706055 * scale, 208.1999969482422 * scale, 212.61249923706055 * scale); ctx.bezierCurveTo(206.1999969482422 * scale, 215.61249923706055 * scale, 204.1999969482422 * scale, 217.61249923706055 * scale, 203.1999969482422 * scale, 216.61249923706055 * scale); ctx.bezierCurveTo(201.1999969482422 * scale, 211.11249923706055 * scale, 201.1999969482422 * scale, 211.11249923706055 * scale, 199.1999969482422 * scale, 205.61249923706055 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(191.1999969482422 * scale, 207.01250076293945 * scale); ctx.bezierCurveTo(194.1999969482422 * scale, 213.01250076293945 * scale, 194.1999969482422 * scale, 216.01250076293945 * scale, 196.1999969482422 * scale, 218.01250076293945 * scale); ctx.bezierCurveTo(193.1999969482422 * scale, 220.01250076293945 * scale, 190.1999969482422 * scale, 220.01250076293945 * scale, 188.1999969482422 * scale, 218.01250076293945 * scale); ctx.bezierCurveTo(189.6999969482422 * scale, 213.01250076293945 * scale, 189.6999969482422 * scale, 213.01250076293945 * scale, 191.1999969482422 * scale, 208.01250076293945 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(186.1999969482422 * scale, 203.21249961853027 * scale); ctx.bezierCurveTo(184.1999969482422 * scale, 209.21249961853027 * scale, 184.1999969482422 * scale, 209.21249961853027 * scale, 182.1999969482422 * scale, 215.21249961853027 * scale); ctx.bezierCurveTo(177.1999969482422 * scale, 212.21249961853027 * scale, 176.1999969482422 * scale, 211.21249961853027 * scale, 177.1999969482422 * scale, 210.21249961853027 * scale); ctx.bezierCurveTo(181.6999969482422 * scale, 206.71249961853027 * scale, 181.6999969482422 * scale, 206.71249961853027 * scale, 186.1999969482422 * scale, 203.21249961853027 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(183.1999969482422 * scale, 196.8125 * scale); ctx.bezierCurveTo(177.1999969482422 * scale, 196.3125 * scale, 177.1999969482422 * scale, 196.3125 * scale, 171.1999969482422 * scale, 195.8125 * scale); ctx.bezierCurveTo(171.1999969482422 * scale, 199.8125 * scale, 171.1999969482422 * scale, 202.8125 * scale, 174.1999969482422 * scale, 204.8125 * scale); ctx.bezierCurveTo(178.6999969482422 * scale, 200.8125 * scale, 178.6999969482422 * scale, 200.8125 * scale, 183.1999969482422 * scale, 196.8125 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(185.1999969482422 * scale, 190.21249771118164 * scale); ctx.bezierCurveTo(179.6999969482422 * scale, 186.71249771118164 * scale, 179.6999969482422 * scale, 186.71249771118164 * scale, 174.1999969482422 * scale, 183.21249771118164 * scale); ctx.bezierCurveTo(172.1999969482422 * scale, 186.21249771118164 * scale, 172.1999969482422 * scale, 187.21249771118164 * scale, 172.1999969482422 * scale, 190.21249771118164 * scale); ctx.bezierCurveTo(178.1999969482422 * scale, 190.21249771118164 * scale, 178.1999969482422 * scale, 190.21249771118164 * scale, 184.1999969482422 * scale, 190.21249771118164 * scale); ctx.closePath(); fill_path(ctx, color[11]); //#7637fa circle(ctx, 126.19999694824219 * scale, 169.8125 * scale, 8.94427190999916 * scale); fill_path(ctx, color[12]); //#7637fa circle(ctx, 123.19999694824219 * scale, 164.8125 * scale, 2.8284271247461903 * scale); fill_path(ctx, color[13]); //#7637fa circle(ctx, 253.1999969482422 * scale, 169.8125 * scale, 8.94427190999916 * scale); fill_path(ctx, color[12]); //#7637fa circle(ctx, 255.1999969482422 * scale, 164.8125 * scale, 2.23606797749979 * scale); fill_path(ctx, color[13]); //#7637fa return can; } function create_bread(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.globalAlpha = 1; ctx.translate(20 * scale, 20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(67.5 * scale, 316.0625 * scale, 134.5 * scale, 334.0625 * scale, 199.5 * scale, 319.0625 * scale); ctx.bezierCurveTo(254.5 * scale, 304.0625 * scale, 346.5 * scale, 270.0625 * scale, 348.5 * scale, 237.0625 * scale); ctx.bezierCurveTo(359.5 * scale, 206.0625 * scale, 318.5 * scale, 129.0625 * scale, 262.5 * scale, 122.0625 * scale); ctx.bezierCurveTo(213.5 * scale, 115.0625 * scale, 166.5 * scale, 133.0625 * scale, 104.5 * scale, 166.0625 * scale); ctx.bezierCurveTo(54.5 * scale, 194.0625 * scale, 23.5 * scale, 241.0625 * scale, 36.5 * scale, 277.0625 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#bf8d51 #7d5133 ctx.translate(-20 * scale, -20 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(67.5 * scale, 316.0625 * scale, 134.5 * scale, 334.0625 * scale, 199.5 * scale, 319.0625 * scale); ctx.bezierCurveTo(254.5 * scale, 304.0625 * scale, 346.5 * scale, 270.0625 * scale, 348.5 * scale, 237.0625 * scale); ctx.bezierCurveTo(359.5 * scale, 206.0625 * scale, 318.5 * scale, 129.0625 * scale, 262.5 * scale, 122.0625 * scale); ctx.bezierCurveTo(213.5 * scale, 115.0625 * scale, 166.5 * scale, 133.0625 * scale, 104.5 * scale, 166.0625 * scale); ctx.bezierCurveTo(54.5 * scale, 194.0625 * scale, 23.5 * scale, 241.0625 * scale, 36.5 * scale, 277.0625 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 19 * scale); //#bf8d51 #7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 124.0625 * scale); ctx.bezierCurveTo(242.5 * scale, 125.0625 * scale, 272.5 * scale, 159.0625 * scale, 283.5 * scale, 184.0625 * scale); ctx.bezierCurveTo(277.5 * scale, 161.0625 * scale, 233.5 * scale, 128.0625 * scale, 219.5 * scale, 122.0625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 19 * scale); //#7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157.5 * scale, 145.0625 * scale); ctx.bezierCurveTo(176.5 * scale, 148.0625 * scale, 205.5 * scale, 176.0625 * scale, 212.5 * scale, 197.0625 * scale); ctx.bezierCurveTo(205.5 * scale, 178.0625 * scale, 177.5 * scale, 152.0625 * scale, 156.5 * scale, 142.0625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 19 * scale); //#7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103.5 * scale, 169.0625 * scale); ctx.bezierCurveTo(160.5 * scale, 166.0625 * scale, 228.5 * scale, 312.0625 * scale, 162.5 * scale, 323.0625 * scale); ctx.bezierCurveTo(128.5 * scale, 330.0625 * scale, 45.5 * scale, 312.0625 * scale, 34.5 * scale, 268.0625 * scale); ctx.bezierCurveTo(30.5 * scale, 238.0625 * scale, 44.5 * scale, 222.0625 * scale, 52.5 * scale, 211.0625 * scale); ctx.bezierCurveTo(82.5 * scale, 174.0625 * scale, 104.5 * scale, 166.0625 * scale, 119.5 * scale, 172.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 19 * scale); //#e8d6bf #7d5133 circle(ctx, 92.5 * scale, 216.0625 * scale, 13.892443989449804 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 68.5 * scale, 227.0625 * scale, 8.06225774829855 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 85.5 * scale, 240.0625 * scale, 6.708203932499369 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 147.5 * scale, 294.0625 * scale, 17.46424919657298 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 166.5 * scale, 273.0625 * scale, 6.708203932499369 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 114.5 * scale, 294.0625 * scale, 12.36931687685298 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 123.5 * scale, 220.0625 * scale, 5.830951894845301 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 114.5 * scale, 259.0625 * scale, 4.123105625617661 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 63.5 * scale, 265.0625 * scale, 5.385164807134504 * scale); fill_path(ctx, color[4]); //#e0c8a9 circle(ctx, 148.5 * scale, 235.0625 * scale, 4.47213595499958 * scale); fill_path(ctx, color[4]); //#e0c8a9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(194.5 * scale, 313.0625 * scale); ctx.bezierCurveTo(222.5 * scale, 306.0625 * scale, 319.5 * scale, 271.0625 * scale, 337.5 * scale, 241.0625 * scale); ctx.bezierCurveTo(274.5 * scale, 270.0625 * scale, 216.5 * scale, 288.0625 * scale, 199.5 * scale, 287.0625 * scale); ctx.bezierCurveTo(198.5 * scale, 302.0625 * scale, 195.5 * scale, 311.0625 * scale, 193.5 * scale, 312.0625 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#ab7a3f return can; } function create_hurt_kraken(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 376 * scale; can.height = 371 * scale; ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(191.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(215.633544921875 * scale, 85.98580932617188 * scale, 187.633544921875 * scale, 71.98580932617188 * scale, 202.633544921875 * scale, 19.985809326171875 * scale); ctx.bezierCurveTo(231.633544921875 * scale, 68.98580932617188 * scale, 253.633544921875 * scale, 71.98580932617188 * scale, 256.633544921875 * scale, 93.98580932617188 * scale); ctx.bezierCurveTo(306.633544921875 * scale, 64.98580932617188 * scale, 319.633544921875 * scale, 61.985809326171875 * scale, 350.633544921875 * scale, 58.985809326171875 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 86.98580932617188 * scale, 281.633544921875 * scale, 106.98580932617188 * scale, 268.633544921875 * scale, 130.98580932617188 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 158.98580932617188 * scale, 328.633544921875 * scale, 155.98580932617188 * scale, 353.633544921875 * scale, 90.98580932617188 * scale); ctx.bezierCurveTo(371.633544921875 * scale, 158.98580932617188 * scale, 337.633544921875 * scale, 210.98580932617188 * scale, 286.633544921875 * scale, 209.98580932617188 * scale); ctx.bezierCurveTo(323.633544921875 * scale, 230.98580932617188 * scale, 317.633544921875 * scale, 274.9858093261719 * scale, 356.633544921875 * scale, 305.9858093261719 * scale); ctx.bezierCurveTo(288.633544921875 * scale, 297.9858093261719 * scale, 288.633544921875 * scale, 265.9858093261719 * scale, 275.633544921875 * scale, 266.9858093261719 * scale); ctx.bezierCurveTo(280.633544921875 * scale, 294.9858093261719 * scale, 315.633544921875 * scale, 306.9858093261719 * scale, 336.633544921875 * scale, 316.9858093261719 * scale); ctx.bezierCurveTo(295.633544921875 * scale, 318.9858093261719 * scale, 264.633544921875 * scale, 302.9858093261719 * scale, 254.633544921875 * scale, 289.9858093261719 * scale); ctx.bezierCurveTo(252.633544921875 * scale, 301.9858093261719 * scale, 224.633544921875 * scale, 315.9858093261719 * scale, 201.633544921875 * scale, 356.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 313.9858093261719 * scale, 195.633544921875 * scale, 308.9858093261719 * scale, 196.633544921875 * scale, 307.9858093261719 * scale); ctx.bezierCurveTo(197.633544921875 * scale, 289.9858093261719 * scale, 207.633544921875 * scale, 283.9858093261719 * scale, 195.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(182.633544921875 * scale, 282.9858093261719 * scale, 190.633544921875 * scale, 287.9858093261719 * scale, 193.633544921875 * scale, 297.9858093261719 * scale); ctx.bezierCurveTo(195.633544921875 * scale, 306.9858093261719 * scale, 191.633544921875 * scale, 334.9858093261719 * scale, 187.633544921875 * scale, 354.9858093261719 * scale); ctx.bezierCurveTo(165.633544921875 * scale, 320.9858093261719 * scale, 138.633544921875 * scale, 307.9858093261719 * scale, 135.633544921875 * scale, 288.9858093261719 * scale); ctx.bezierCurveTo(110.633544921875 * scale, 318.9858093261719 * scale, 68.633544921875 * scale, 323.9858093261719 * scale, 49.633544921875 * scale, 320.9858093261719 * scale); ctx.bezierCurveTo(88.633544921875 * scale, 308.9858093261719 * scale, 108.633544921875 * scale, 284.9858093261719 * scale, 118.633544921875 * scale, 258.9858093261719 * scale); ctx.bezierCurveTo(86.633544921875 * scale, 264.9858093261719 * scale, 75.633544921875 * scale, 310.9858093261719 * scale, 19.633544921875 * scale, 304.9858093261719 * scale); ctx.bezierCurveTo(54.633544921875 * scale, 276.9858093261719 * scale, 59.633544921875 * scale, 214.98580932617188 * scale, 105.633544921875 * scale, 205.98580932617188 * scale); ctx.bezierCurveTo(14.633544921875 * scale, 201.98580932617188 * scale, 24.633544921875 * scale, 141.98580932617188 * scale, 25.633544921875 * scale, 82.98580932617188 * scale); ctx.bezierCurveTo(49.633544921875 * scale, 168.98580932617188 * scale, 87.633544921875 * scale, 141.98580932617188 * scale, 112.633544921875 * scale, 123.98580932617188 * scale); ctx.bezierCurveTo(95.633544921875 * scale, 75.98580932617188 * scale, 70.633544921875 * scale, 68.98580932617188 * scale, 35.633544921875 * scale, 50.985809326171875 * scale); ctx.bezierCurveTo(70.633544921875 * scale, 53.985809326171875 * scale, 102.633544921875 * scale, 65.98580932617188 * scale, 125.633544921875 * scale, 84.98580932617188 * scale); ctx.bezierCurveTo(133.633544921875 * scale, 69.98580932617188 * scale, 166.633544921875 * scale, 42.985809326171875 * scale, 176.633544921875 * scale, 21.985809326171875 * scale); ctx.bezierCurveTo(185.633544921875 * scale, 49.985809326171875 * scale, 168.633544921875 * scale, 95.98580932617188 * scale, 191.633544921875 * scale, 121.98580932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#ffffff #44fd51 return can; } function create_bread_oven_off(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 440 * scale; can.height = 388 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); circle(ctx, 220 * scale, 201 * scale, 170.41713528867922 * scale); fill_path(ctx, color[0], color[0], 6 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); circle(ctx, 220 * scale, 201 * scale, 170.41713528867922 * scale); fill_path(ctx, color[1], color[2], 6 * scale); //#9e793d #5f461f circle(ctx, 220 * scale, 201 * scale, 130 * scale); fill_path(ctx, color[11], color[2], 6 * scale); //#9e793d #5f461f circle(ctx, 222 * scale, 199 * scale, 120.74767078498864 * scale); fill_path(ctx, undefined, color[3], 40 * scale); //#e5e6e8 circle(ctx, 220 * scale, 200 * scale, 95.44108130150245 * scale); fill_path(ctx, undefined, color[2], 15 * scale); //#9391e8 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); circle(ctx, 63 * scale, 136 * scale, 49.193495504995376 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#e4918e ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); circle(ctx, 63 * scale, 136 * scale, 49.193495504995376 * scale); fill_path(ctx, color[8], color[2], 4 * scale); //#e4918e circle(ctx, 63 * scale, 137 * scale, 25.632011235952593 * scale); fill_path(ctx, color[7], color[2], 4 * scale); //#e4918e return can; } function create_bread_oven(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 440 * scale; can.height = 388 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); circle(ctx, 220 * scale, 201 * scale, 170.41713528867922 * scale); fill_path(ctx, color[0], color[0], 6 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); circle(ctx, 220 * scale, 201 * scale, 170.41713528867922 * scale); fill_path(ctx, color[1], color[2], 6 * scale); //#9e793d #5f461f circle(ctx, 220 * scale, 201 * scale, 130 * scale); fill_path(ctx, color[11], color[2], 6 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(218 * scale, 97 * scale); ctx.bezierCurveTo(219 * scale, 163 * scale, 201 * scale, 176 * scale, 191 * scale, 175 * scale); ctx.bezierCurveTo(176 * scale, 177 * scale, 168 * scale, 167 * scale, 160 * scale, 115 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224 * scale, 181 * scale); ctx.bezierCurveTo(225 * scale, 138 * scale, 246 * scale, 115 * scale, 263 * scale, 137 * scale); ctx.bezierCurveTo(282 * scale, 174 * scale, 279 * scale, 217 * scale, 265 * scale, 243 * scale); ctx.bezierCurveTo(253 * scale, 264 * scale, 240 * scale, 256 * scale, 233 * scale, 238 * scale); ctx.bezierCurveTo(221 * scale, 212 * scale, 225 * scale, 198 * scale, 224 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(169 * scale, 289 * scale); ctx.bezierCurveTo(161 * scale, 234 * scale, 168 * scale, 197 * scale, 187 * scale, 195 * scale); ctx.bezierCurveTo(219 * scale, 189 * scale, 222 * scale, 256 * scale, 216 * scale, 307 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 146 * scale); ctx.bezierCurveTo(161 * scale, 199 * scale, 151 * scale, 245 * scale, 138 * scale, 266 * scale); ctx.bezierCurveTo(120.5 * scale, 239.5 * scale, 120.5 * scale, 239.5 * scale, 103 * scale, 213 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(283 * scale, 135 * scale); ctx.bezierCurveTo(277 * scale, 176 * scale, 298 * scale, 194 * scale, 315 * scale, 205 * scale); ctx.bezierCurveTo(323.5 * scale, 175 * scale, 323.5 * scale, 175 * scale, 332 * scale, 145 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(318 * scale, 223 * scale); ctx.bezierCurveTo(290 * scale, 195 * scale, 271 * scale, 256 * scale, 283 * scale, 281 * scale); ctx.bezierCurveTo(303.5 * scale, 267 * scale, 303.5 * scale, 267 * scale, 324 * scale, 253 * scale); ctx.closePath(); fill_path(ctx, color[5], color[6], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(142 * scale, 223 * scale); ctx.bezierCurveTo(128 * scale, 213 * scale, 123 * scale, 214 * scale, 111 * scale, 223 * scale); ctx.closePath(); fill_path(ctx, color[10], color[10], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(251 * scale, 133 * scale); ctx.bezierCurveTo(269 * scale, 188 * scale, 262 * scale, 229 * scale, 251 * scale, 253 * scale); ctx.bezierCurveTo(288 * scale, 224 * scale, 273 * scale, 139 * scale, 252 * scale, 133 * scale); ctx.closePath(); fill_path(ctx, color[10], color[10], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(203 * scale, 102 * scale); ctx.bezierCurveTo(204 * scale, 136 * scale, 200 * scale, 159 * scale, 189 * scale, 174 * scale); ctx.bezierCurveTo(223 * scale, 164 * scale, 219 * scale, 87 * scale, 205 * scale, 83 * scale); ctx.closePath(); fill_path(ctx, color[10], color[10], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(196 * scale, 324 * scale); ctx.bezierCurveTo(209 * scale, 239 * scale, 200 * scale, 219 * scale, 192 * scale, 196 * scale); ctx.bezierCurveTo(229 * scale, 216 * scale, 219 * scale, 316 * scale, 198 * scale, 325 * scale); ctx.closePath(); fill_path(ctx, color[10], color[10], 4 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(266 * scale, 166 * scale); ctx.bezierCurveTo(249 * scale, 154 * scale, 243 * scale, 161 * scale, 233 * scale, 167 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(269 * scale, 192 * scale); ctx.bezierCurveTo(256 * scale, 183 * scale, 241 * scale, 186 * scale, 233 * scale, 192 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(263 * scale, 217 * scale); ctx.bezierCurveTo(251 * scale, 211 * scale, 242 * scale, 213 * scale, 236 * scale, 218 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(204 * scale, 141 * scale); ctx.bezierCurveTo(191 * scale, 131 * scale, 187 * scale, 133 * scale, 176 * scale, 141 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(207 * scale, 230 * scale); ctx.bezierCurveTo(193 * scale, 222 * scale, 185 * scale, 224 * scale, 177 * scale, 231 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(210 * scale, 258 * scale); ctx.bezierCurveTo(196 * scale, 247 * scale, 191 * scale, 250 * scale, 177 * scale, 259 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 196 * scale); ctx.bezierCurveTo(130 * scale, 186 * scale, 124 * scale, 187 * scale, 114 * scale, 195 * scale); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(218 * scale, 97 * scale); ctx.bezierCurveTo(219 * scale, 163 * scale, 201 * scale, 176 * scale, 191 * scale, 175 * scale); ctx.bezierCurveTo(176 * scale, 177 * scale, 168 * scale, 167 * scale, 160 * scale, 115 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(224 * scale, 181 * scale); ctx.bezierCurveTo(225 * scale, 138 * scale, 246 * scale, 115 * scale, 263 * scale, 137 * scale); ctx.bezierCurveTo(282 * scale, 174 * scale, 279 * scale, 217 * scale, 265 * scale, 243 * scale); ctx.bezierCurveTo(253 * scale, 264 * scale, 240 * scale, 256 * scale, 233 * scale, 238 * scale); ctx.bezierCurveTo(221 * scale, 212 * scale, 225 * scale, 198 * scale, 224 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(169 * scale, 289 * scale); ctx.bezierCurveTo(161 * scale, 234 * scale, 168 * scale, 197 * scale, 187 * scale, 195 * scale); ctx.bezierCurveTo(219 * scale, 189 * scale, 222 * scale, 256 * scale, 216 * scale, 307 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(143 * scale, 146 * scale); ctx.bezierCurveTo(161 * scale, 199 * scale, 151 * scale, 245 * scale, 138 * scale, 266 * scale); ctx.bezierCurveTo(120.5 * scale, 239.5 * scale, 120.5 * scale, 239.5 * scale, 103 * scale, 213 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(283 * scale, 135 * scale); ctx.bezierCurveTo(277 * scale, 176 * scale, 298 * scale, 194 * scale, 315 * scale, 205 * scale); ctx.bezierCurveTo(323.5 * scale, 175 * scale, 323.5 * scale, 175 * scale, 332 * scale, 145 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(318 * scale, 223 * scale); ctx.bezierCurveTo(290 * scale, 195 * scale, 271 * scale, 256 * scale, 283 * scale, 281 * scale); ctx.bezierCurveTo(303.5 * scale, 267 * scale, 303.5 * scale, 267 * scale, 324 * scale, 253 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 6 * scale); //#e4918e circle(ctx, 222 * scale, 199 * scale, 120.74767078498864 * scale); fill_path(ctx, undefined, color[3], 40 * scale); //#e5e6e8 circle(ctx, 220 * scale, 200 * scale, 95.44108130150245 * scale); fill_path(ctx, undefined, color[2], 15 * scale); //#9391e8 circle(ctx, 220 * scale, 201 * scale, 85 * scale); fill_path(ctx, undefined, color[4], 10 * scale); //#e4918e ctx.globalAlpha = 0.5; circle(ctx, 220 * scale, 201 * scale, 82 * scale); fill_path(ctx, color[9]); //#e4918e ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); circle(ctx, 63 * scale, 136 * scale, 49.193495504995376 * scale); fill_path(ctx, color[0], color[0], 4 * scale); //#e4918e ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); circle(ctx, 63 * scale, 136 * scale, 49.193495504995376 * scale); fill_path(ctx, color[8], color[2], 4 * scale); //#e4918e circle(ctx, 63 * scale, 137 * scale, 25.632011235952593 * scale); fill_path(ctx, color[7], color[2], 4 * scale); //#e4918e return can; } function create_bread_light_up(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 110 * scale; can.height = 110 * scale; ctx.globalAlpha = 0.2; circle(ctx, 55 * scale, 55 * scale, 55 * scale); fill_path(ctx, color[0]); //#eaedef return can; } function create_bridge(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 102 * scale; can.height = 102 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(3, 3); round_rect(ctx, 24 * scale, 26 * scale, 70 * scale, 9 * scale, 10 * scale); fill_path(ctx, color[0]); //#000000 #000000 round_rect(ctx, 26 * scale, 70 * scale, 70 * scale, 9 * scale, 10 * scale); fill_path(ctx, color[0]); //#000000 #000000 round_rect(ctx, 5 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[0]); //#000000 #000000 round_rect(ctx, 40 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[0]); //#000000 #000000 round_rect(ctx, 75 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[0]); //#000000 #000000 ctx.globalAlpha = 1; ctx.translate(-3, -3); round_rect(ctx, 24 * scale, 26 * scale, 70 * scale, 9 * scale, 10 * scale); fill_path(ctx, color[1]); //#000000 #000000 round_rect(ctx, 26 * scale, 70 * scale, 70 * scale, 9 * scale, 10 * scale); fill_path(ctx, color[1]); //#000000 #000000 round_rect(ctx, 5 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[2], color[3], 4 * scale); //#000000 #000000 round_rect(ctx, 40 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[2], color[3], 4 * scale); //#000000 #000000 round_rect(ctx, 75 * scale, 3 * scale, 22 * scale, 94 * scale, 5 * scale); fill_path(ctx, color[2], color[3], 4 * scale); //#000000 #000000 return can; } function create_well_border(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 496 * scale; can.height = 520 * scale; /*Contour du puit*/ ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); circle(ctx, 247.01138305664062 * scale, 250.13068389892578 * scale, 232.81967270830015 * scale); fill_path(ctx, color[1], color[2], 14 * scale); //#9e793d #5f461f ctx.globalCompositeOperation = "destination-out"; /*Trou du puit*/ circle(ctx, 247.01138305664062 * scale, 249.3125 * scale, 161.4465855941215 * scale); fill_path(ctx, color[0], color[0], 14 * scale); //#9e793d #5f461f ctx.globalCompositeOperation = "source-over"; return can; } function create_well(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 496 * scale; can.height = 520 * scale; /*Ombre en bas*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(19.000030517578125 * scale, 256.67613983154297 * scale); ctx.bezierCurveTo(1.000030517578125 * scale, 332.67613983154297 * scale, 23.000030517578125 * scale, 404.67613983154297 * scale, 95.00003051757812 * scale, 463.67613983154297 * scale); ctx.bezierCurveTo(128.00003051757812 * scale, 491.67613983154297 * scale, 165.00003051757812 * scale, 507.67613983154297 * scale, 194.00003051757812 * scale, 512.676139831543 * scale); ctx.bezierCurveTo(280.0000305175781 * scale, 517.676139831543 * scale, 291.0000305175781 * scale, 516.676139831543 * scale, 342.0000305175781 * scale, 497.67613983154297 * scale); ctx.bezierCurveTo(425.0000305175781 * scale, 454.67613983154297 * scale, 469.0000305175781 * scale, 392.67613983154297 * scale, 468.0000305175781 * scale, 300.67613983154297 * scale); ctx.bezierCurveTo(408.5000305175781 * scale, 365.17613983154297 * scale, 408.5000305175781 * scale, 365.17613983154297 * scale, 349.0000305175781 * scale, 429.67613983154297 * scale); ctx.bezierCurveTo(256.0000305175781 * scale, 473.67613983154297 * scale, 167.00003051757812 * scale, 459.67613983154297 * scale, 78.00003051757812 * scale, 384.67613983154297 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f /*Eau ou Fond vide*/ ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); circle(ctx, 247.01138305664062 * scale, 249.3125 * scale, 161.4465855941215 * scale); fill_path(ctx, color[5], undefined, 12 * scale); //#9e793d #5f461f /*Ombre intérieur*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65.00003051757812 * scale, 263.4034118652344 * scale); ctx.bezierCurveTo(109.00003051757812 * scale, 160.40341186523438 * scale, 185.00003051757812 * scale, 128.40341186523438 * scale, 222.00003051757812 * scale, 124.40341186523438 * scale); ctx.bezierCurveTo(277.0000305175781 * scale, 116.40341186523438 * scale, 339.0000305175781 * scale, 134.40341186523438 * scale, 379.0000305175781 * scale, 195.40341186523438 * scale); ctx.bezierCurveTo(409.0000305175781 * scale, 242.40341186523438 * scale, 416.0000305175781 * scale, 256.4034118652344 * scale, 428.0000305175781 * scale, 304.4034118652344 * scale); ctx.bezierCurveTo(457.0000305175781 * scale, 203.40341186523438 * scale, 449.0000305175781 * scale, 183.40341186523438 * scale, 438.0000305175781 * scale, 162.40341186523438 * scale); ctx.bezierCurveTo(381.0000305175781 * scale, 73.40341186523438 * scale, 360.0000305175781 * scale, 66.40341186523438 * scale, 257.0000305175781 * scale, 46.403411865234375 * scale); ctx.bezierCurveTo(191.00003051757812 * scale, 45.403411865234375 * scale, 142.00003051757812 * scale, 65.40341186523438 * scale, 101.00003051757812 * scale, 115.40341186523438 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; var img = create_well_border(scale, color); ctx.drawImage(img, 0, 0); /*Coutour intérieur du puit*/ ctx.translate(0, -10 * scale); circle(ctx, 247.01138305664062 * scale, 249.3125 * scale, 161.4465855941215 * scale); fill_path(ctx, undefined, color[2], 12 * scale); //#9e793d #5f461f /*Dalles 1*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(325.0113830566406 * scale, 13.767059326171875 * scale); ctx.bezierCurveTo(349.5113830566406 * scale, 25.767059326171875 * scale, 349.5113830566406 * scale, 25.767059326171875 * scale, 374.0113830566406 * scale, 37.767059326171875 * scale); ctx.bezierCurveTo(384.0113830566406 * scale, 44.767059326171875 * scale, 383.0113830566406 * scale, 50.767059326171875 * scale, 368.0113830566406 * scale, 68.76705932617188 * scale); ctx.bezierCurveTo(352.5113830566406 * scale, 91.26705932617188 * scale, 352.5113830566406 * scale, 91.26705932617188 * scale, 337.0113830566406 * scale, 113.76705932617188 * scale); ctx.bezierCurveTo(328.0113830566406 * scale, 119.76705932617188 * scale, 328.0113830566406 * scale, 121.76705932617188 * scale, 312.0113830566406 * scale, 112.76705932617188 * scale); ctx.bezierCurveTo(303.0113830566406 * scale, 108.26705932617188 * scale, 303.0113830566406 * scale, 108.26705932617188 * scale, 294.0113830566406 * scale, 103.76705932617188 * scale); ctx.bezierCurveTo(287.0113830566406 * scale, 99.76705932617188 * scale, 293.0113830566406 * scale, 84.76705932617188 * scale, 297.0113830566406 * scale, 67.76705932617188 * scale); ctx.bezierCurveTo(302.0113830566406 * scale, 47.767059326171875 * scale, 302.0113830566406 * scale, 47.767059326171875 * scale, 307.0113830566406 * scale, 27.767059326171875 * scale); ctx.bezierCurveTo(310.0113830566406 * scale, 15.767059326171875 * scale, 317.0113830566406 * scale, 12.767059326171875 * scale, 323.0113830566406 * scale, 13.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(325.0113830566406 * scale, 13.767059326171875 * scale); ctx.bezierCurveTo(349.5113830566406 * scale, 25.767059326171875 * scale, 349.5113830566406 * scale, 25.767059326171875 * scale, 374.0113830566406 * scale, 37.767059326171875 * scale); ctx.bezierCurveTo(384.0113830566406 * scale, 44.767059326171875 * scale, 383.0113830566406 * scale, 50.767059326171875 * scale, 368.0113830566406 * scale, 68.76705932617188 * scale); ctx.bezierCurveTo(352.5113830566406 * scale, 91.26705932617188 * scale, 352.5113830566406 * scale, 91.26705932617188 * scale, 337.0113830566406 * scale, 113.76705932617188 * scale); ctx.bezierCurveTo(328.0113830566406 * scale, 119.76705932617188 * scale, 328.0113830566406 * scale, 121.76705932617188 * scale, 312.0113830566406 * scale, 112.76705932617188 * scale); ctx.bezierCurveTo(303.0113830566406 * scale, 108.26705932617188 * scale, 303.0113830566406 * scale, 108.26705932617188 * scale, 294.0113830566406 * scale, 103.76705932617188 * scale); ctx.bezierCurveTo(287.0113830566406 * scale, 99.76705932617188 * scale, 293.0113830566406 * scale, 84.76705932617188 * scale, 297.0113830566406 * scale, 67.76705932617188 * scale); ctx.bezierCurveTo(302.0113830566406 * scale, 47.767059326171875 * scale, 302.0113830566406 * scale, 47.767059326171875 * scale, 307.0113830566406 * scale, 27.767059326171875 * scale); ctx.bezierCurveTo(310.0113830566406 * scale, 15.767059326171875 * scale, 317.0113830566406 * scale, 12.767059326171875 * scale, 323.0113830566406 * scale, 13.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 2*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(403.0113830566406 * scale, 89.76705932617188 * scale); ctx.bezierCurveTo(413.0113830566406 * scale, 76.76705932617188 * scale, 418.0113830566406 * scale, 79.76705932617188 * scale, 428.0113830566406 * scale, 92.76705932617188 * scale); ctx.bezierCurveTo(435.0113830566406 * scale, 99.76705932617188 * scale, 435.0113830566406 * scale, 99.76705932617188 * scale, 442.0113830566406 * scale, 106.76705932617188 * scale); ctx.bezierCurveTo(450.0113830566406 * scale, 116.76705932617188 * scale, 445.0113830566406 * scale, 119.76705932617188 * scale, 433.0113830566406 * scale, 128.76705932617188 * scale); ctx.bezierCurveTo(408.0113830566406 * scale, 146.26705932617188 * scale, 408.0113830566406 * scale, 146.26705932617188 * scale, 383.0113830566406 * scale, 163.76705932617188 * scale); ctx.bezierCurveTo(376.0113830566406 * scale, 166.76705932617188 * scale, 377.0113830566406 * scale, 165.76705932617188 * scale, 368.0113830566406 * scale, 156.76705932617188 * scale); ctx.bezierCurveTo(359.0113830566406 * scale, 144.76705932617188 * scale, 359.0113830566406 * scale, 142.76705932617188 * scale, 367.0113830566406 * scale, 133.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(403.0113830566406 * scale, 89.76705932617188 * scale); ctx.bezierCurveTo(413.0113830566406 * scale, 76.76705932617188 * scale, 418.0113830566406 * scale, 79.76705932617188 * scale, 428.0113830566406 * scale, 92.76705932617188 * scale); ctx.bezierCurveTo(435.0113830566406 * scale, 99.76705932617188 * scale, 435.0113830566406 * scale, 99.76705932617188 * scale, 442.0113830566406 * scale, 106.76705932617188 * scale); ctx.bezierCurveTo(450.0113830566406 * scale, 116.76705932617188 * scale, 445.0113830566406 * scale, 119.76705932617188 * scale, 433.0113830566406 * scale, 128.76705932617188 * scale); ctx.bezierCurveTo(408.0113830566406 * scale, 146.26705932617188 * scale, 408.0113830566406 * scale, 146.26705932617188 * scale, 383.0113830566406 * scale, 163.76705932617188 * scale); ctx.bezierCurveTo(376.0113830566406 * scale, 166.76705932617188 * scale, 377.0113830566406 * scale, 165.76705932617188 * scale, 368.0113830566406 * scale, 156.76705932617188 * scale); ctx.bezierCurveTo(359.0113830566406 * scale, 144.76705932617188 * scale, 359.0113830566406 * scale, 142.76705932617188 * scale, 367.0113830566406 * scale, 133.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 3*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(228.01138305664062 * scale, 1.767059326171875 * scale); ctx.bezierCurveTo(246.51138305664062 * scale, 3.267059326171875 * scale, 246.51138305664062 * scale, 3.267059326171875 * scale, 265.0113830566406 * scale, 4.767059326171875 * scale); ctx.bezierCurveTo(273.0113830566406 * scale, 5.767059326171875 * scale, 275.0113830566406 * scale, 11.767059326171875 * scale, 270.0113830566406 * scale, 27.767059326171875 * scale); ctx.bezierCurveTo(264.0113830566406 * scale, 54.267059326171875 * scale, 264.0113830566406 * scale, 54.267059326171875 * scale, 258.0113830566406 * scale, 80.76705932617188 * scale); ctx.bezierCurveTo(256.0113830566406 * scale, 92.76705932617188 * scale, 256.0113830566406 * scale, 94.76705932617188 * scale, 242.01138305664062 * scale, 93.76705932617188 * scale); ctx.bezierCurveTo(226.01138305664062 * scale, 95.76705932617188 * scale, 225.01138305664062 * scale, 91.76705932617188 * scale, 225.01138305664062 * scale, 80.76705932617188 * scale); ctx.bezierCurveTo(223.51138305664062 * scale, 50.267059326171875 * scale, 223.51138305664062 * scale, 50.267059326171875 * scale, 222.01138305664062 * scale, 19.767059326171875 * scale); ctx.bezierCurveTo(219.01138305664062 * scale, 8.767059326171875 * scale, 224.01138305664062 * scale, 4.767059326171875 * scale, 227.01138305664062 * scale, 2.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(228.01138305664062 * scale, 1.767059326171875 * scale); ctx.bezierCurveTo(246.51138305664062 * scale, 3.267059326171875 * scale, 246.51138305664062 * scale, 3.267059326171875 * scale, 265.0113830566406 * scale, 4.767059326171875 * scale); ctx.bezierCurveTo(273.0113830566406 * scale, 5.767059326171875 * scale, 275.0113830566406 * scale, 11.767059326171875 * scale, 270.0113830566406 * scale, 27.767059326171875 * scale); ctx.bezierCurveTo(264.0113830566406 * scale, 54.267059326171875 * scale, 264.0113830566406 * scale, 54.267059326171875 * scale, 258.0113830566406 * scale, 80.76705932617188 * scale); ctx.bezierCurveTo(256.0113830566406 * scale, 92.76705932617188 * scale, 256.0113830566406 * scale, 94.76705932617188 * scale, 242.01138305664062 * scale, 93.76705932617188 * scale); ctx.bezierCurveTo(226.01138305664062 * scale, 95.76705932617188 * scale, 225.01138305664062 * scale, 91.76705932617188 * scale, 225.01138305664062 * scale, 80.76705932617188 * scale); ctx.bezierCurveTo(223.51138305664062 * scale, 50.267059326171875 * scale, 223.51138305664062 * scale, 50.267059326171875 * scale, 222.01138305664062 * scale, 19.767059326171875 * scale); ctx.bezierCurveTo(219.01138305664062 * scale, 8.767059326171875 * scale, 224.01138305664062 * scale, 4.767059326171875 * scale, 227.01138305664062 * scale, 2.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 4*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(142.01138305664062 * scale, 25.767059326171875 * scale); ctx.bezierCurveTo(158.51138305664062 * scale, 19.767059326171875 * scale, 158.51138305664062 * scale, 19.767059326171875 * scale, 175.01138305664062 * scale, 13.767059326171875 * scale); ctx.bezierCurveTo(188.01138305664062 * scale, 11.767059326171875 * scale, 188.01138305664062 * scale, 16.767059326171875 * scale, 191.01138305664062 * scale, 29.767059326171875 * scale); ctx.bezierCurveTo(197.01138305664062 * scale, 60.267059326171875 * scale, 197.01138305664062 * scale, 60.267059326171875 * scale, 203.01138305664062 * scale, 90.76705932617188 * scale); ctx.bezierCurveTo(206.01138305664062 * scale, 102.76705932617188 * scale, 196.01138305664062 * scale, 99.76705932617188 * scale, 181.01138305664062 * scale, 105.76705932617188 * scale); ctx.bezierCurveTo(175.01138305664062 * scale, 108.76705932617188 * scale, 172.01138305664062 * scale, 104.76705932617188 * scale, 164.01138305664062 * scale, 84.76705932617188 * scale); ctx.bezierCurveTo(152.51138305664062 * scale, 63.267059326171875 * scale, 152.51138305664062 * scale, 63.267059326171875 * scale, 141.01138305664062 * scale, 41.767059326171875 * scale); ctx.bezierCurveTo(138.01138305664062 * scale, 35.767059326171875 * scale, 138.01138305664062 * scale, 29.767059326171875 * scale, 141.01138305664062 * scale, 27.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(142.01138305664062 * scale, 25.767059326171875 * scale); ctx.bezierCurveTo(158.51138305664062 * scale, 19.767059326171875 * scale, 158.51138305664062 * scale, 19.767059326171875 * scale, 175.01138305664062 * scale, 13.767059326171875 * scale); ctx.bezierCurveTo(188.01138305664062 * scale, 11.767059326171875 * scale, 188.01138305664062 * scale, 16.767059326171875 * scale, 191.01138305664062 * scale, 29.767059326171875 * scale); ctx.bezierCurveTo(197.01138305664062 * scale, 60.267059326171875 * scale, 197.01138305664062 * scale, 60.267059326171875 * scale, 203.01138305664062 * scale, 90.76705932617188 * scale); ctx.bezierCurveTo(206.01138305664062 * scale, 102.76705932617188 * scale, 196.01138305664062 * scale, 99.76705932617188 * scale, 181.01138305664062 * scale, 105.76705932617188 * scale); ctx.bezierCurveTo(175.01138305664062 * scale, 108.76705932617188 * scale, 172.01138305664062 * scale, 104.76705932617188 * scale, 164.01138305664062 * scale, 84.76705932617188 * scale); ctx.bezierCurveTo(152.51138305664062 * scale, 63.267059326171875 * scale, 152.51138305664062 * scale, 63.267059326171875 * scale, 141.01138305664062 * scale, 41.767059326171875 * scale); ctx.bezierCurveTo(138.01138305664062 * scale, 35.767059326171875 * scale, 138.01138305664062 * scale, 29.767059326171875 * scale, 141.01138305664062 * scale, 27.767059326171875 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 5*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70.01138305664062 * scale, 76.76705932617188 * scale); ctx.bezierCurveTo(83.01138305664062 * scale, 64.26705932617188 * scale, 83.01138305664062 * scale, 64.26705932617188 * scale, 96.01138305664062 * scale, 51.767059326171875 * scale); ctx.bezierCurveTo(104.01138305664062 * scale, 44.767059326171875 * scale, 110.01138305664062 * scale, 51.767059326171875 * scale, 119.01138305664062 * scale, 66.76705932617188 * scale); ctx.bezierCurveTo(135.01138305664062 * scale, 88.26705932617188 * scale, 135.01138305664062 * scale, 88.26705932617188 * scale, 151.01138305664062 * scale, 109.76705932617188 * scale); ctx.bezierCurveTo(157.01138305664062 * scale, 119.76705932617188 * scale, 153.01138305664062 * scale, 122.76705932617188 * scale, 147.01138305664062 * scale, 129.76705932617188 * scale); ctx.bezierCurveTo(138.01138305664062 * scale, 140.76705932617188 * scale, 136.01138305664062 * scale, 140.76705932617188 * scale, 122.01138305664062 * scale, 127.76705932617188 * scale); ctx.bezierCurveTo(99.51138305664062 * scale, 110.26705932617188 * scale, 99.51138305664062 * scale, 110.26705932617188 * scale, 77.01138305664062 * scale, 92.76705932617188 * scale); ctx.bezierCurveTo(66.01138305664062 * scale, 83.76705932617188 * scale, 66.01138305664062 * scale, 82.76705932617188 * scale, 69.01138305664062 * scale, 78.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(70.01138305664062 * scale, 76.76705932617188 * scale); ctx.bezierCurveTo(83.01138305664062 * scale, 64.26705932617188 * scale, 83.01138305664062 * scale, 64.26705932617188 * scale, 96.01138305664062 * scale, 51.767059326171875 * scale); ctx.bezierCurveTo(104.01138305664062 * scale, 44.767059326171875 * scale, 110.01138305664062 * scale, 51.767059326171875 * scale, 119.01138305664062 * scale, 66.76705932617188 * scale); ctx.bezierCurveTo(135.01138305664062 * scale, 88.26705932617188 * scale, 135.01138305664062 * scale, 88.26705932617188 * scale, 151.01138305664062 * scale, 109.76705932617188 * scale); ctx.bezierCurveTo(157.01138305664062 * scale, 119.76705932617188 * scale, 153.01138305664062 * scale, 122.76705932617188 * scale, 147.01138305664062 * scale, 129.76705932617188 * scale); ctx.bezierCurveTo(138.01138305664062 * scale, 140.76705932617188 * scale, 136.01138305664062 * scale, 140.76705932617188 * scale, 122.01138305664062 * scale, 127.76705932617188 * scale); ctx.bezierCurveTo(99.51138305664062 * scale, 110.26705932617188 * scale, 99.51138305664062 * scale, 110.26705932617188 * scale, 77.01138305664062 * scale, 92.76705932617188 * scale); ctx.bezierCurveTo(66.01138305664062 * scale, 83.76705932617188 * scale, 66.01138305664062 * scale, 82.76705932617188 * scale, 69.01138305664062 * scale, 78.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 6*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.011383056640625 * scale, 126.76705932617188 * scale); ctx.bezierCurveTo(22.011383056640625 * scale, 149.76705932617188 * scale, 22.011383056640625 * scale, 149.76705932617188 * scale, 11.011383056640625 * scale, 172.76705932617188 * scale); ctx.bezierCurveTo(7.011383056640625 * scale, 184.76705932617188 * scale, 11.011383056640625 * scale, 189.76705932617188 * scale, 36.011383056640625 * scale, 195.76705932617188 * scale); ctx.bezierCurveTo(61.011383056640625 * scale, 202.26705932617188 * scale, 61.011383056640625 * scale, 202.26705932617188 * scale, 86.01138305664062 * scale, 208.76705932617188 * scale); ctx.bezierCurveTo(100.01138305664062 * scale, 214.76705932617188 * scale, 102.01138305664062 * scale, 203.76705932617188 * scale, 109.01138305664062 * scale, 189.76705932617188 * scale); ctx.bezierCurveTo(117.01138305664062 * scale, 171.76705932617188 * scale, 116.01138305664062 * scale, 166.76705932617188 * scale, 97.01138305664062 * scale, 156.76705932617188 * scale); ctx.bezierCurveTo(74.01138305664062 * scale, 140.76705932617188 * scale, 74.01138305664062 * scale, 140.76705932617188 * scale, 51.011383056640625 * scale, 124.76705932617188 * scale); ctx.bezierCurveTo(42.011383056640625 * scale, 118.76705932617188 * scale, 37.011383056640625 * scale, 119.76705932617188 * scale, 33.011383056640625 * scale, 126.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(33.011383056640625 * scale, 126.76705932617188 * scale); ctx.bezierCurveTo(22.011383056640625 * scale, 149.76705932617188 * scale, 22.011383056640625 * scale, 149.76705932617188 * scale, 11.011383056640625 * scale, 172.76705932617188 * scale); ctx.bezierCurveTo(7.011383056640625 * scale, 184.76705932617188 * scale, 11.011383056640625 * scale, 189.76705932617188 * scale, 36.011383056640625 * scale, 195.76705932617188 * scale); ctx.bezierCurveTo(61.011383056640625 * scale, 202.26705932617188 * scale, 61.011383056640625 * scale, 202.26705932617188 * scale, 86.01138305664062 * scale, 208.76705932617188 * scale); ctx.bezierCurveTo(100.01138305664062 * scale, 214.76705932617188 * scale, 102.01138305664062 * scale, 203.76705932617188 * scale, 109.01138305664062 * scale, 189.76705932617188 * scale); ctx.bezierCurveTo(117.01138305664062 * scale, 171.76705932617188 * scale, 116.01138305664062 * scale, 166.76705932617188 * scale, 97.01138305664062 * scale, 156.76705932617188 * scale); ctx.bezierCurveTo(74.01138305664062 * scale, 140.76705932617188 * scale, 74.01138305664062 * scale, 140.76705932617188 * scale, 51.011383056640625 * scale, 124.76705932617188 * scale); ctx.bezierCurveTo(42.011383056640625 * scale, 118.76705932617188 * scale, 37.011383056640625 * scale, 119.76705932617188 * scale, 33.011383056640625 * scale, 126.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 7*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13.011383056640625 * scale, 229.76705932617188 * scale); ctx.bezierCurveTo(45.511383056640625 * scale, 233.76705932617188 * scale, 45.511383056640625 * scale, 233.76705932617188 * scale, 78.01138305664062 * scale, 237.76705932617188 * scale); ctx.bezierCurveTo(92.01138305664062 * scale, 239.76705932617188 * scale, 92.01138305664062 * scale, 246.76705932617188 * scale, 91.01138305664062 * scale, 257.7670593261719 * scale); ctx.bezierCurveTo(92.01138305664062 * scale, 275.7670593261719 * scale, 91.01138305664062 * scale, 274.7670593261719 * scale, 68.01138305664062 * scale, 276.7670593261719 * scale); ctx.bezierCurveTo(42.511383056640625 * scale, 279.7670593261719 * scale, 42.511383056640625 * scale, 279.7670593261719 * scale, 17.011383056640625 * scale, 282.7670593261719 * scale); ctx.bezierCurveTo(2.011383056640625 * scale, 282.7670593261719 * scale, 3.011383056640625 * scale, 276.7670593261719 * scale, 2.011383056640625 * scale, 260.7670593261719 * scale); ctx.bezierCurveTo(2.011383056640625 * scale, 231.76705932617188 * scale, 4.011383056640625 * scale, 232.76705932617188 * scale, 11.011383056640625 * scale, 230.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(13.011383056640625 * scale, 229.76705932617188 * scale); ctx.bezierCurveTo(45.511383056640625 * scale, 233.76705932617188 * scale, 45.511383056640625 * scale, 233.76705932617188 * scale, 78.01138305664062 * scale, 237.76705932617188 * scale); ctx.bezierCurveTo(92.01138305664062 * scale, 239.76705932617188 * scale, 92.01138305664062 * scale, 246.76705932617188 * scale, 91.01138305664062 * scale, 257.7670593261719 * scale); ctx.bezierCurveTo(92.01138305664062 * scale, 275.7670593261719 * scale, 91.01138305664062 * scale, 274.7670593261719 * scale, 68.01138305664062 * scale, 276.7670593261719 * scale); ctx.bezierCurveTo(42.511383056640625 * scale, 279.7670593261719 * scale, 42.511383056640625 * scale, 279.7670593261719 * scale, 17.011383056640625 * scale, 282.7670593261719 * scale); ctx.bezierCurveTo(2.011383056640625 * scale, 282.7670593261719 * scale, 3.011383056640625 * scale, 276.7670593261719 * scale, 2.011383056640625 * scale, 260.7670593261719 * scale); ctx.bezierCurveTo(2.011383056640625 * scale, 231.76705932617188 * scale, 4.011383056640625 * scale, 232.76705932617188 * scale, 11.011383056640625 * scale, 230.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 8*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(97.01138305664062 * scale, 329.7670593261719 * scale); ctx.bezierCurveTo(68.51138305664062 * scale, 343.7670593261719 * scale, 68.51138305664062 * scale, 343.7670593261719 * scale, 40.011383056640625 * scale, 357.7670593261719 * scale); ctx.bezierCurveTo(29.011383056640625 * scale, 360.7670593261719 * scale, 27.011383056640625 * scale, 361.7670593261719 * scale, 20.011383056640625 * scale, 346.7670593261719 * scale); ctx.bezierCurveTo(16.511383056640625 * scale, 336.2670593261719 * scale, 16.511383056640625 * scale, 336.2670593261719 * scale, 13.011383056640625 * scale, 325.7670593261719 * scale); ctx.bezierCurveTo(10.011383056640625 * scale, 307.7670593261719 * scale, 18.011383056640625 * scale, 312.7670593261719 * scale, 34.011383056640625 * scale, 306.7670593261719 * scale); ctx.bezierCurveTo(59.511383056640625 * scale, 302.2670593261719 * scale, 59.511383056640625 * scale, 302.2670593261719 * scale, 85.01138305664062 * scale, 297.7670593261719 * scale); ctx.bezierCurveTo(97.01138305664062 * scale, 294.7670593261719 * scale, 100.01138305664062 * scale, 297.7670593261719 * scale, 100.01138305664062 * scale, 307.7670593261719 * scale); ctx.bezierCurveTo(105.01138305664062 * scale, 326.7670593261719 * scale, 103.01138305664062 * scale, 325.7670593261719 * scale, 97.01138305664062 * scale, 329.7670593261719 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(97.01138305664062 * scale, 329.7670593261719 * scale); ctx.bezierCurveTo(68.51138305664062 * scale, 343.7670593261719 * scale, 68.51138305664062 * scale, 343.7670593261719 * scale, 40.011383056640625 * scale, 357.7670593261719 * scale); ctx.bezierCurveTo(29.011383056640625 * scale, 360.7670593261719 * scale, 27.011383056640625 * scale, 361.7670593261719 * scale, 20.011383056640625 * scale, 346.7670593261719 * scale); ctx.bezierCurveTo(16.511383056640625 * scale, 336.2670593261719 * scale, 16.511383056640625 * scale, 336.2670593261719 * scale, 13.011383056640625 * scale, 325.7670593261719 * scale); ctx.bezierCurveTo(10.011383056640625 * scale, 307.7670593261719 * scale, 18.011383056640625 * scale, 312.7670593261719 * scale, 34.011383056640625 * scale, 306.7670593261719 * scale); ctx.bezierCurveTo(59.511383056640625 * scale, 302.2670593261719 * scale, 59.511383056640625 * scale, 302.2670593261719 * scale, 85.01138305664062 * scale, 297.7670593261719 * scale); ctx.bezierCurveTo(97.01138305664062 * scale, 294.7670593261719 * scale, 100.01138305664062 * scale, 297.7670593261719 * scale, 100.01138305664062 * scale, 307.7670593261719 * scale); ctx.bezierCurveTo(105.01138305664062 * scale, 326.7670593261719 * scale, 103.01138305664062 * scale, 325.7670593261719 * scale, 97.01138305664062 * scale, 329.7670593261719 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 9*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(394.0113830566406 * scale, 181.76705932617188 * scale); ctx.bezierCurveTo(426.5113830566406 * scale, 166.76705932617188 * scale, 426.5113830566406 * scale, 166.76705932617188 * scale, 459.0113830566406 * scale, 151.76705932617188 * scale); ctx.bezierCurveTo(469.0113830566406 * scale, 152.76705932617188 * scale, 469.0113830566406 * scale, 155.76705932617188 * scale, 472.0113830566406 * scale, 165.76705932617188 * scale); ctx.bezierCurveTo(476.0113830566406 * scale, 177.26705932617188 * scale, 476.0113830566406 * scale, 177.26705932617188 * scale, 480.0113830566406 * scale, 188.76705932617188 * scale); ctx.bezierCurveTo(483.0113830566406 * scale, 199.76705932617188 * scale, 480.0113830566406 * scale, 200.76705932617188 * scale, 460.0113830566406 * scale, 205.76705932617188 * scale); ctx.bezierCurveTo(433.5113830566406 * scale, 210.26705932617188 * scale, 433.5113830566406 * scale, 210.26705932617188 * scale, 407.0113830566406 * scale, 214.76705932617188 * scale); ctx.bezierCurveTo(395.0113830566406 * scale, 218.76705932617188 * scale, 397.0113830566406 * scale, 211.76705932617188 * scale, 393.0113830566406 * scale, 202.76705932617188 * scale); ctx.bezierCurveTo(387.0113830566406 * scale, 188.76705932617188 * scale, 387.0113830566406 * scale, 187.76705932617188 * scale, 394.0113830566406 * scale, 181.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(394.0113830566406 * scale, 181.76705932617188 * scale); ctx.bezierCurveTo(426.5113830566406 * scale, 166.76705932617188 * scale, 426.5113830566406 * scale, 166.76705932617188 * scale, 459.0113830566406 * scale, 151.76705932617188 * scale); ctx.bezierCurveTo(469.0113830566406 * scale, 152.76705932617188 * scale, 469.0113830566406 * scale, 155.76705932617188 * scale, 472.0113830566406 * scale, 165.76705932617188 * scale); ctx.bezierCurveTo(476.0113830566406 * scale, 177.26705932617188 * scale, 476.0113830566406 * scale, 177.26705932617188 * scale, 480.0113830566406 * scale, 188.76705932617188 * scale); ctx.bezierCurveTo(483.0113830566406 * scale, 199.76705932617188 * scale, 480.0113830566406 * scale, 200.76705932617188 * scale, 460.0113830566406 * scale, 205.76705932617188 * scale); ctx.bezierCurveTo(433.5113830566406 * scale, 210.26705932617188 * scale, 433.5113830566406 * scale, 210.26705932617188 * scale, 407.0113830566406 * scale, 214.76705932617188 * scale); ctx.bezierCurveTo(395.0113830566406 * scale, 218.76705932617188 * scale, 397.0113830566406 * scale, 211.76705932617188 * scale, 393.0113830566406 * scale, 202.76705932617188 * scale); ctx.bezierCurveTo(387.0113830566406 * scale, 188.76705932617188 * scale, 387.0113830566406 * scale, 187.76705932617188 * scale, 394.0113830566406 * scale, 181.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 10*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(411.0113830566406 * scale, 234.76705932617188 * scale); ctx.bezierCurveTo(446.0113830566406 * scale, 233.26705932617188 * scale, 446.0113830566406 * scale, 233.26705932617188 * scale, 481.0113830566406 * scale, 231.76705932617188 * scale); ctx.bezierCurveTo(491.0113830566406 * scale, 232.76705932617188 * scale, 493.0113830566406 * scale, 239.76705932617188 * scale, 491.0113830566406 * scale, 251.76705932617188 * scale); ctx.bezierCurveTo(490.0113830566406 * scale, 263.7670593261719 * scale, 490.0113830566406 * scale, 263.7670593261719 * scale, 489.0113830566406 * scale, 275.7670593261719 * scale); ctx.bezierCurveTo(487.0113830566406 * scale, 283.7670593261719 * scale, 483.0113830566406 * scale, 284.7670593261719 * scale, 464.0113830566406 * scale, 280.7670593261719 * scale); ctx.bezierCurveTo(437.0113830566406 * scale, 273.7670593261719 * scale, 437.0113830566406 * scale, 273.7670593261719 * scale, 410.0113830566406 * scale, 266.7670593261719 * scale); ctx.bezierCurveTo(400.0113830566406 * scale, 261.7670593261719 * scale, 401.0113830566406 * scale, 259.7670593261719 * scale, 402.0113830566406 * scale, 249.76705932617188 * scale); ctx.bezierCurveTo(401.0113830566406 * scale, 237.76705932617188 * scale, 403.0113830566406 * scale, 235.76705932617188 * scale, 408.0113830566406 * scale, 234.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(411.0113830566406 * scale, 234.76705932617188 * scale); ctx.bezierCurveTo(446.0113830566406 * scale, 233.26705932617188 * scale, 446.0113830566406 * scale, 233.26705932617188 * scale, 481.0113830566406 * scale, 231.76705932617188 * scale); ctx.bezierCurveTo(491.0113830566406 * scale, 232.76705932617188 * scale, 493.0113830566406 * scale, 239.76705932617188 * scale, 491.0113830566406 * scale, 251.76705932617188 * scale); ctx.bezierCurveTo(490.0113830566406 * scale, 263.7670593261719 * scale, 490.0113830566406 * scale, 263.7670593261719 * scale, 489.0113830566406 * scale, 275.7670593261719 * scale); ctx.bezierCurveTo(487.0113830566406 * scale, 283.7670593261719 * scale, 483.0113830566406 * scale, 284.7670593261719 * scale, 464.0113830566406 * scale, 280.7670593261719 * scale); ctx.bezierCurveTo(437.0113830566406 * scale, 273.7670593261719 * scale, 437.0113830566406 * scale, 273.7670593261719 * scale, 410.0113830566406 * scale, 266.7670593261719 * scale); ctx.bezierCurveTo(400.0113830566406 * scale, 261.7670593261719 * scale, 401.0113830566406 * scale, 259.7670593261719 * scale, 402.0113830566406 * scale, 249.76705932617188 * scale); ctx.bezierCurveTo(401.0113830566406 * scale, 237.76705932617188 * scale, 403.0113830566406 * scale, 235.76705932617188 * scale, 408.0113830566406 * scale, 234.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 11*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(400.0113830566406 * scale, 290.7670593261719 * scale); ctx.bezierCurveTo(437.0113830566406 * scale, 301.2670593261719 * scale, 437.0113830566406 * scale, 301.2670593261719 * scale, 474.0113830566406 * scale, 311.7670593261719 * scale); ctx.bezierCurveTo(484.0113830566406 * scale, 319.7670593261719 * scale, 481.0113830566406 * scale, 322.7670593261719 * scale, 474.0113830566406 * scale, 335.7670593261719 * scale); ctx.bezierCurveTo(465.5113830566406 * scale, 354.7670593261719 * scale, 465.5113830566406 * scale, 354.7670593261719 * scale, 457.0113830566406 * scale, 373.7670593261719 * scale); ctx.bezierCurveTo(449.0113830566406 * scale, 386.7670593261719 * scale, 444.0113830566406 * scale, 384.7670593261719 * scale, 427.0113830566406 * scale, 370.7670593261719 * scale); ctx.bezierCurveTo(403.0113830566406 * scale, 354.7670593261719 * scale, 403.0113830566406 * scale, 354.7670593261719 * scale, 379.0113830566406 * scale, 338.7670593261719 * scale); ctx.bezierCurveTo(371.0113830566406 * scale, 327.7670593261719 * scale, 373.0113830566406 * scale, 323.7670593261719 * scale, 377.0113830566406 * scale, 313.7670593261719 * scale); ctx.bezierCurveTo(386.0113830566406 * scale, 292.7670593261719 * scale, 393.0113830566406 * scale, 288.7670593261719 * scale, 398.0113830566406 * scale, 291.7670593261719 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(400.0113830566406 * scale, 290.7670593261719 * scale); ctx.bezierCurveTo(437.0113830566406 * scale, 301.2670593261719 * scale, 437.0113830566406 * scale, 301.2670593261719 * scale, 474.0113830566406 * scale, 311.7670593261719 * scale); ctx.bezierCurveTo(484.0113830566406 * scale, 319.7670593261719 * scale, 481.0113830566406 * scale, 322.7670593261719 * scale, 474.0113830566406 * scale, 335.7670593261719 * scale); ctx.bezierCurveTo(465.5113830566406 * scale, 354.7670593261719 * scale, 465.5113830566406 * scale, 354.7670593261719 * scale, 457.0113830566406 * scale, 373.7670593261719 * scale); ctx.bezierCurveTo(449.0113830566406 * scale, 386.7670593261719 * scale, 444.0113830566406 * scale, 384.7670593261719 * scale, 427.0113830566406 * scale, 370.7670593261719 * scale); ctx.bezierCurveTo(403.0113830566406 * scale, 354.7670593261719 * scale, 403.0113830566406 * scale, 354.7670593261719 * scale, 379.0113830566406 * scale, 338.7670593261719 * scale); ctx.bezierCurveTo(371.0113830566406 * scale, 327.7670593261719 * scale, 373.0113830566406 * scale, 323.7670593261719 * scale, 377.0113830566406 * scale, 313.7670593261719 * scale); ctx.bezierCurveTo(386.0113830566406 * scale, 292.7670593261719 * scale, 393.0113830566406 * scale, 288.7670593261719 * scale, 398.0113830566406 * scale, 291.7670593261719 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 12*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(366.0113830566406 * scale, 361.2216033935547 * scale); ctx.bezierCurveTo(393.0113830566406 * scale, 383.2216033935547 * scale, 393.0113830566406 * scale, 383.2216033935547 * scale, 420.0113830566406 * scale, 405.2216033935547 * scale); ctx.bezierCurveTo(427.0113830566406 * scale, 414.2216033935547 * scale, 425.0113830566406 * scale, 417.2216033935547 * scale, 413.0113830566406 * scale, 428.2216033935547 * scale); ctx.bezierCurveTo(405.5113830566406 * scale, 435.2216033935547 * scale, 405.5113830566406 * scale, 435.2216033935547 * scale, 398.0113830566406 * scale, 442.2216033935547 * scale); ctx.bezierCurveTo(388.0113830566406 * scale, 451.2216033935547 * scale, 385.0113830566406 * scale, 445.2216033935547 * scale, 373.0113830566406 * scale, 428.2216033935547 * scale); ctx.bezierCurveTo(358.5113830566406 * scale, 408.2216033935547 * scale, 358.5113830566406 * scale, 408.2216033935547 * scale, 344.0113830566406 * scale, 388.2216033935547 * scale); ctx.bezierCurveTo(337.0113830566406 * scale, 378.2216033935547 * scale, 342.0113830566406 * scale, 377.2216033935547 * scale, 347.0113830566406 * scale, 371.2216033935547 * scale); ctx.bezierCurveTo(359.0113830566406 * scale, 359.2216033935547 * scale, 361.0113830566406 * scale, 358.2216033935547 * scale, 364.0113830566406 * scale, 361.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(366.0113830566406 * scale, 361.2216033935547 * scale); ctx.bezierCurveTo(393.0113830566406 * scale, 383.2216033935547 * scale, 393.0113830566406 * scale, 383.2216033935547 * scale, 420.0113830566406 * scale, 405.2216033935547 * scale); ctx.bezierCurveTo(427.0113830566406 * scale, 414.2216033935547 * scale, 425.0113830566406 * scale, 417.2216033935547 * scale, 413.0113830566406 * scale, 428.2216033935547 * scale); ctx.bezierCurveTo(405.5113830566406 * scale, 435.2216033935547 * scale, 405.5113830566406 * scale, 435.2216033935547 * scale, 398.0113830566406 * scale, 442.2216033935547 * scale); ctx.bezierCurveTo(388.0113830566406 * scale, 451.2216033935547 * scale, 385.0113830566406 * scale, 445.2216033935547 * scale, 373.0113830566406 * scale, 428.2216033935547 * scale); ctx.bezierCurveTo(358.5113830566406 * scale, 408.2216033935547 * scale, 358.5113830566406 * scale, 408.2216033935547 * scale, 344.0113830566406 * scale, 388.2216033935547 * scale); ctx.bezierCurveTo(337.0113830566406 * scale, 378.2216033935547 * scale, 342.0113830566406 * scale, 377.2216033935547 * scale, 347.0113830566406 * scale, 371.2216033935547 * scale); ctx.bezierCurveTo(359.0113830566406 * scale, 359.2216033935547 * scale, 361.0113830566406 * scale, 358.2216033935547 * scale, 364.0113830566406 * scale, 361.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 13*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(323.0113830566406 * scale, 393.2216033935547 * scale); ctx.bezierCurveTo(338.0113830566406 * scale, 424.7216033935547 * scale, 338.0113830566406 * scale, 424.7216033935547 * scale, 353.0113830566406 * scale, 456.2216033935547 * scale); ctx.bezierCurveTo(355.0113830566406 * scale, 467.2216033935547 * scale, 354.0113830566406 * scale, 469.2216033935547 * scale, 336.0113830566406 * scale, 475.2216033935547 * scale); ctx.bezierCurveTo(326.0113830566406 * scale, 478.2216033935547 * scale, 326.0113830566406 * scale, 478.2216033935547 * scale, 316.0113830566406 * scale, 481.2216033935547 * scale); ctx.bezierCurveTo(304.0113830566406 * scale, 484.2216033935547 * scale, 304.0113830566406 * scale, 477.2216033935547 * scale, 301.0113830566406 * scale, 454.2216033935547 * scale); ctx.bezierCurveTo(295.5113830566406 * scale, 429.2216033935547 * scale, 295.5113830566406 * scale, 429.2216033935547 * scale, 290.0113830566406 * scale, 404.2216033935547 * scale); ctx.bezierCurveTo(287.0113830566406 * scale, 396.2216033935547 * scale, 297.0113830566406 * scale, 394.2216033935547 * scale, 303.0113830566406 * scale, 392.2216033935547 * scale); ctx.bezierCurveTo(316.0113830566406 * scale, 387.2216033935547 * scale, 318.0113830566406 * scale, 387.2216033935547 * scale, 323.0113830566406 * scale, 394.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(323.0113830566406 * scale, 393.2216033935547 * scale); ctx.bezierCurveTo(338.0113830566406 * scale, 424.7216033935547 * scale, 338.0113830566406 * scale, 424.7216033935547 * scale, 353.0113830566406 * scale, 456.2216033935547 * scale); ctx.bezierCurveTo(355.0113830566406 * scale, 467.2216033935547 * scale, 354.0113830566406 * scale, 469.2216033935547 * scale, 336.0113830566406 * scale, 475.2216033935547 * scale); ctx.bezierCurveTo(326.0113830566406 * scale, 478.2216033935547 * scale, 326.0113830566406 * scale, 478.2216033935547 * scale, 316.0113830566406 * scale, 481.2216033935547 * scale); ctx.bezierCurveTo(304.0113830566406 * scale, 484.2216033935547 * scale, 304.0113830566406 * scale, 477.2216033935547 * scale, 301.0113830566406 * scale, 454.2216033935547 * scale); ctx.bezierCurveTo(295.5113830566406 * scale, 429.2216033935547 * scale, 295.5113830566406 * scale, 429.2216033935547 * scale, 290.0113830566406 * scale, 404.2216033935547 * scale); ctx.bezierCurveTo(287.0113830566406 * scale, 396.2216033935547 * scale, 297.0113830566406 * scale, 394.2216033935547 * scale, 303.0113830566406 * scale, 392.2216033935547 * scale); ctx.bezierCurveTo(316.0113830566406 * scale, 387.2216033935547 * scale, 318.0113830566406 * scale, 387.2216033935547 * scale, 323.0113830566406 * scale, 394.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 14*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(270.0113830566406 * scale, 413.2216033935547 * scale); ctx.bezierCurveTo(271.0113830566406 * scale, 445.7216033935547 * scale, 271.0113830566406 * scale, 445.7216033935547 * scale, 272.0113830566406 * scale, 478.2216033935547 * scale); ctx.bezierCurveTo(273.0113830566406 * scale, 490.2216033935547 * scale, 267.0113830566406 * scale, 493.2216033935547 * scale, 249.01138305664062 * scale, 490.2216033935547 * scale); ctx.bezierCurveTo(222.01138305664062 * scale, 492.2216033935547 * scale, 220.01138305664062 * scale, 485.2216033935547 * scale, 225.01138305664062 * scale, 467.2216033935547 * scale); ctx.bezierCurveTo(230.51138305664062 * scale, 440.2216033935547 * scale, 230.51138305664062 * scale, 440.2216033935547 * scale, 236.01138305664062 * scale, 413.2216033935547 * scale); ctx.bezierCurveTo(237.01138305664062 * scale, 405.2216033935547 * scale, 238.01138305664062 * scale, 404.2216033935547 * scale, 253.01138305664062 * scale, 403.2216033935547 * scale); ctx.bezierCurveTo(269.0113830566406 * scale, 405.2216033935547 * scale, 270.0113830566406 * scale, 407.2216033935547 * scale, 269.0113830566406 * scale, 412.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(270.0113830566406 * scale, 413.2216033935547 * scale); ctx.bezierCurveTo(271.0113830566406 * scale, 445.7216033935547 * scale, 271.0113830566406 * scale, 445.7216033935547 * scale, 272.0113830566406 * scale, 478.2216033935547 * scale); ctx.bezierCurveTo(273.0113830566406 * scale, 490.2216033935547 * scale, 267.0113830566406 * scale, 493.2216033935547 * scale, 249.01138305664062 * scale, 490.2216033935547 * scale); ctx.bezierCurveTo(222.01138305664062 * scale, 492.2216033935547 * scale, 220.01138305664062 * scale, 485.2216033935547 * scale, 225.01138305664062 * scale, 467.2216033935547 * scale); ctx.bezierCurveTo(230.51138305664062 * scale, 440.2216033935547 * scale, 230.51138305664062 * scale, 440.2216033935547 * scale, 236.01138305664062 * scale, 413.2216033935547 * scale); ctx.bezierCurveTo(237.01138305664062 * scale, 405.2216033935547 * scale, 238.01138305664062 * scale, 404.2216033935547 * scale, 253.01138305664062 * scale, 403.2216033935547 * scale); ctx.bezierCurveTo(269.0113830566406 * scale, 405.2216033935547 * scale, 270.0113830566406 * scale, 407.2216033935547 * scale, 269.0113830566406 * scale, 412.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 15*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(207.01138305664062 * scale, 406.2216033935547 * scale); ctx.bezierCurveTo(197.51138305664062 * scale, 440.7216033935547 * scale, 197.51138305664062 * scale, 440.7216033935547 * scale, 188.01138305664062 * scale, 475.2216033935547 * scale); ctx.bezierCurveTo(184.01138305664062 * scale, 485.2216033935547 * scale, 179.01138305664062 * scale, 491.2216033935547 * scale, 152.01138305664062 * scale, 477.2216033935547 * scale); ctx.bezierCurveTo(136.51138305664062 * scale, 469.7216033935547 * scale, 136.51138305664062 * scale, 469.7216033935547 * scale, 121.01138305664062 * scale, 462.2216033935547 * scale); ctx.bezierCurveTo(109.01138305664062 * scale, 453.2216033935547 * scale, 117.01138305664062 * scale, 447.2216033935547 * scale, 133.01138305664062 * scale, 427.2216033935547 * scale); ctx.bezierCurveTo(146.51138305664062 * scale, 406.7216033935547 * scale, 146.51138305664062 * scale, 406.7216033935547 * scale, 160.01138305664062 * scale, 386.2216033935547 * scale); ctx.bezierCurveTo(163.01138305664062 * scale, 377.2216033935547 * scale, 168.01138305664062 * scale, 378.2216033935547 * scale, 187.01138305664062 * scale, 387.2216033935547 * scale); ctx.bezierCurveTo(206.01138305664062 * scale, 395.2216033935547 * scale, 208.01138305664062 * scale, 398.2216033935547 * scale, 207.01138305664062 * scale, 405.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(207.01138305664062 * scale, 406.2216033935547 * scale); ctx.bezierCurveTo(197.51138305664062 * scale, 440.7216033935547 * scale, 197.51138305664062 * scale, 440.7216033935547 * scale, 188.01138305664062 * scale, 475.2216033935547 * scale); ctx.bezierCurveTo(184.01138305664062 * scale, 485.2216033935547 * scale, 179.01138305664062 * scale, 491.2216033935547 * scale, 152.01138305664062 * scale, 477.2216033935547 * scale); ctx.bezierCurveTo(136.51138305664062 * scale, 469.7216033935547 * scale, 136.51138305664062 * scale, 469.7216033935547 * scale, 121.01138305664062 * scale, 462.2216033935547 * scale); ctx.bezierCurveTo(109.01138305664062 * scale, 453.2216033935547 * scale, 117.01138305664062 * scale, 447.2216033935547 * scale, 133.01138305664062 * scale, 427.2216033935547 * scale); ctx.bezierCurveTo(146.51138305664062 * scale, 406.7216033935547 * scale, 146.51138305664062 * scale, 406.7216033935547 * scale, 160.01138305664062 * scale, 386.2216033935547 * scale); ctx.bezierCurveTo(163.01138305664062 * scale, 377.2216033935547 * scale, 168.01138305664062 * scale, 378.2216033935547 * scale, 187.01138305664062 * scale, 387.2216033935547 * scale); ctx.bezierCurveTo(206.01138305664062 * scale, 395.2216033935547 * scale, 208.01138305664062 * scale, 398.2216033935547 * scale, 207.01138305664062 * scale, 405.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#9e793d #5f461f /*Dalle 16*/ ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.01138305664062 * scale, 375.2216033935547 * scale); ctx.bezierCurveTo(109.51138305664062 * scale, 400.7216033935547 * scale, 109.51138305664062 * scale, 400.7216033935547 * scale, 89.01138305664062 * scale, 426.2216033935547 * scale); ctx.bezierCurveTo(82.01138305664062 * scale, 435.2216033935547 * scale, 77.01138305664062 * scale, 435.2216033935547 * scale, 62.011383056640625 * scale, 417.2216033935547 * scale); ctx.bezierCurveTo(43.011383056640625 * scale, 397.2216033935547 * scale, 47.011383056640625 * scale, 395.2216033935547 * scale, 62.011383056640625 * scale, 382.2216033935547 * scale); ctx.bezierCurveTo(84.01138305664062 * scale, 366.7216033935547 * scale, 84.01138305664062 * scale, 366.7216033935547 * scale, 106.01138305664062 * scale, 351.2216033935547 * scale); ctx.bezierCurveTo(116.01138305664062 * scale, 344.2216033935547 * scale, 120.01138305664062 * scale, 347.2216033935547 * scale, 127.01138305664062 * scale, 356.2216033935547 * scale); ctx.bezierCurveTo(137.01138305664062 * scale, 366.2216033935547 * scale, 137.01138305664062 * scale, 366.2216033935547 * scale, 131.01138305664062 * scale, 376.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 12 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(130.01138305664062 * scale, 375.2216033935547 * scale); ctx.bezierCurveTo(109.51138305664062 * scale, 400.7216033935547 * scale, 109.51138305664062 * scale, 400.7216033935547 * scale, 89.01138305664062 * scale, 426.2216033935547 * scale); ctx.bezierCurveTo(82.01138305664062 * scale, 435.2216033935547 * scale, 77.01138305664062 * scale, 435.2216033935547 * scale, 62.011383056640625 * scale, 417.2216033935547 * scale); ctx.bezierCurveTo(43.011383056640625 * scale, 397.2216033935547 * scale, 47.011383056640625 * scale, 395.2216033935547 * scale, 62.011383056640625 * scale, 382.2216033935547 * scale); ctx.bezierCurveTo(84.01138305664062 * scale, 366.7216033935547 * scale, 84.01138305664062 * scale, 366.7216033935547 * scale, 106.01138305664062 * scale, 351.2216033935547 * scale); ctx.bezierCurveTo(116.01138305664062 * scale, 344.2216033935547 * scale, 120.01138305664062 * scale, 347.2216033935547 * scale, 127.01138305664062 * scale, 356.2216033935547 * scale); ctx.bezierCurveTo(137.01138305664062 * scale, 366.2216033935547 * scale, 137.01138305664062 * scale, 366.2216033935547 * scale, 131.01138305664062 * scale, 376.2216033935547 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 12 * scale); //#9e793d #5f461f return can; } function create_sand(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 218 * scale; can.height = 185 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(64 * scale, 53.135406494140625 * scale); ctx.bezierCurveTo(92 * scale, 17.135406494140625 * scale, 116 * scale, 11.135406494140625 * scale, 158 * scale, 53.135406494140625 * scale); ctx.bezierCurveTo(178 * scale, 74.13540649414062 * scale, 181 * scale, 81.13540649414062 * scale, 196 * scale, 101.13540649414062 * scale); ctx.bezierCurveTo(214 * scale, 127.13540649414062 * scale, 192 * scale, 138.13540649414062 * scale, 173 * scale, 149.13540649414062 * scale); ctx.bezierCurveTo(137 * scale, 166.13540649414062 * scale, 74 * scale, 170.13540649414062 * scale, 36 * scale, 141.13540649414062 * scale); ctx.bezierCurveTo(13 * scale, 127.13540649414062 * scale, 20 * scale, 119.13540649414062 * scale, 30 * scale, 103.13540649414062 * scale); ctx.bezierCurveTo(48 * scale, 71.13540649414062 * scale, 54 * scale, 67.13540649414062 * scale, 63 * scale, 54.135406494140625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 10 * scale); //#000000 #6dee88 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107 * scale, 25.135406494140625 * scale); ctx.bezierCurveTo(62 * scale, 90.13540649414062 * scale, 54 * scale, 129.13540649414062 * scale, 53 * scale, 151.13540649414062 * scale); ctx.bezierCurveTo(39.5 * scale, 142.13540649414062 * scale, 39.5 * scale, 142.13540649414062 * scale, 26 * scale, 133.13540649414062 * scale); ctx.bezierCurveTo(23.5 * scale, 128.63540649414062 * scale, 23.5 * scale, 128.63540649414062 * scale, 21 * scale, 124.13540649414062 * scale); ctx.bezierCurveTo(22 * scale, 113.13540649414062 * scale, 31 * scale, 99.13540649414062 * scale, 40 * scale, 88.13540649414062 * scale); ctx.bezierCurveTo(54.5 * scale, 67.13540649414062 * scale, 54.5 * scale, 67.13540649414062 * scale, 69 * scale, 46.135406494140625 * scale); ctx.bezierCurveTo(80.5 * scale, 36.635406494140625 * scale, 80.5 * scale, 36.635406494140625 * scale, 92 * scale, 27.135406494140625 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#57d199 return can; } function create_ice(scale, useless, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 167 * scale; can.height = 136 * scale; ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(76.71426391601562 * scale, 67.85713195800781 * scale); round_rect(ctx, -57.5 * scale, -54.5 * scale, 115 * scale, 109 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0]); //#00b900 #a00000 ctx.globalAlpha = 0.8; ctx.save(); ctx.translate(76.71426391601562 * scale, 67.85713195800781 * scale); round_rect(ctx, -57.5 * scale, -54.5 * scale, 115 * scale, 109 * scale, 15 * scale); ctx.restore(); fill_path(ctx, undefined, color[1], 7 * scale); //#00b900 #a00000 ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(91.21426391601562 * scale, 67.35713195800781 * scale); round_rect(ctx, -56 * scale, -55 * scale, 115 * scale, 109 * scale, 15 * scale); ctx.restore(); fill_path(ctx, color[0]); //#00b900 #a00000 ctx.globalAlpha = 1; ctx.save(); ctx.translate(91.21426391601562 * scale, 67.35713195800781 * scale); round_rect(ctx, -56 * scale, -55 * scale, 115 * scale, 109 * scale, 15 * scale); ctx.restore(); fill_path(ctx, undefined, color[1], 7 * scale); //#00b900 #a00000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131.21426391601562 * scale, 70.35713195800781 * scale); ctx.bezierCurveTo(133.21426391601562 * scale, 95.35713195800781 * scale, 128.21426391601562 * scale, 109.35713195800781 * scale, 108.21426391601562 * scale, 108.35713195800781 * scale); fill_path(ctx, undefined, color[1], 10 * scale); //#a00000 return can; } function create_plot(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 163 * scale; can.height = 163 * scale; ctx.save(); ctx.translate(82.5 * scale, 81.1015625 * scale); ctx.rotate(0); round_rect(ctx, -65.5 * scale, -66 * scale, 131 * scale, 131 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[1]); //#b27fb3 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(80 * scale, 17.1015625 * scale); round_rect(ctx, -64 * scale, -4.5 * scale, 129 * scale, 9 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(80 * scale, 17.1015625 * scale); round_rect(ctx, -64 * scale, -4.5 * scale, 129 * scale, 9 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(145.5 * scale, 83.6015625 * scale); round_rect(ctx, -4.5 * scale, -61 * scale, 9 * scale, 129 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(145.5 * scale, 83.6015625 * scale); round_rect(ctx, -4.5 * scale, -61 * scale, 9 * scale, 129 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(17.5 * scale, 82.6015625 * scale); round_rect(ctx, -4.5 * scale, -65 * scale, 9 * scale, 129 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(17.5 * scale, 82.6015625 * scale); round_rect(ctx, -4.5 * scale, -65 * scale, 9 * scale, 129 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(80.5 * scale, 145.6015625 * scale); round_rect(ctx, -65.5 * scale, -4 * scale, 129 * scale, 9 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(80.5 * scale, 145.6015625 * scale); round_rect(ctx, -65.5 * scale, -4 * scale, 129 * scale, 9 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(17 * scale, 18.1015625 * scale); round_rect(ctx, -11 * scale, -11.5 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(17 * scale, 18.1015625 * scale); round_rect(ctx, -11 * scale, -11.5 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(145.5 * scale, 16.6015625 * scale); round_rect(ctx, -10.5 * scale, -11.5 * scale, 21 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(145.5 * scale, 16.6015625 * scale); round_rect(ctx, -10.5 * scale, -11.5 * scale, 21 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(145.5 * scale, 144.1015625 * scale); round_rect(ctx, -10.5 * scale, -11 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(145.5 * scale, 144.1015625 * scale); round_rect(ctx, -10.5 * scale, -11 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); ctx.translate(17.5 * scale, 145.1015625 * scale); round_rect(ctx, -11.5 * scale, -12 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[0]); //#b27fb3 #000000 ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); ctx.translate(17.5 * scale, 145.1015625 * scale); round_rect(ctx, -11.5 * scale, -12 * scale, 22 * scale, 22 * scale, 5 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 3 * scale); //#b27fb3 #000000 return can; } function create_watering_can(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 168 * scale; can.height = 100 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(10 * scale, 5 * scale); ctx.save(); ctx.translate(24.5 * scale, 44.30000305175781 * scale); round_rect(ctx, -19.5 * scale, -8.5 * scale, 39 * scale, 17 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#e26100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(142 * scale, 37.80000305175781 * scale, 140 * scale, 37.80000305175781 * scale, 141 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(147 * scale, 28.800003051757812 * scale, 149 * scale, 26.800003051757812 * scale, 153 * scale, 32.80000305175781 * scale); ctx.bezierCurveTo(160 * scale, 42.80000305175781 * scale, 157 * scale, 50.80000305175781 * scale, 153 * scale, 58.80000305175781 * scale); ctx.bezierCurveTo(148 * scale, 62.80000305175781 * scale, 147 * scale, 59.80000305175781 * scale, 143 * scale, 52.80000305175781 * scale); ctx.bezierCurveTo(129 * scale, 52.80000305175781 * scale, 129 * scale, 52.80000305175781 * scale, 115 * scale, 52.80000305175781 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#e26100 circle(ctx, 78 * scale, 44.80000305175781 * scale, 39.44616584663204 * scale); fill_path(ctx, color[0]); //#e26100 ctx.globalAlpha = 1; ctx.translate(-10 * scale, -5 * scale); ctx.save(); ctx.translate(24.5 * scale, 44.30000305175781 * scale); round_rect(ctx, -19.5 * scale, -8.5 * scale, 39 * scale, 17 * scale, 10 * scale); ctx.restore(); fill_path(ctx, undefined, color[3], 6 * scale); //#e26100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(142 * scale, 37.80000305175781 * scale, 140 * scale, 37.80000305175781 * scale, 141 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(147 * scale, 28.800003051757812 * scale, 149 * scale, 26.800003051757812 * scale, 153 * scale, 32.80000305175781 * scale); ctx.bezierCurveTo(160 * scale, 42.80000305175781 * scale, 157 * scale, 50.80000305175781 * scale, 153 * scale, 58.80000305175781 * scale); ctx.bezierCurveTo(148 * scale, 62.80000305175781 * scale, 147 * scale, 59.80000305175781 * scale, 143 * scale, 52.80000305175781 * scale); ctx.bezierCurveTo(129 * scale, 52.80000305175781 * scale, 129 * scale, 52.80000305175781 * scale, 115 * scale, 52.80000305175781 * scale); ctx.closePath(); fill_path(ctx, undefined, color[3], 6 * scale); //#e26100 #000000 circle(ctx, 78 * scale, 44.80000305175781 * scale, 42.44616584663204 * scale); fill_path(ctx, undefined, color[3], 6 * scale); //#e26100 #000000 ctx.save(); ctx.translate(24.5 * scale, 44.30000305175781 * scale); round_rect(ctx, -19.5 * scale, -8.5 * scale, 39 * scale, 17 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1]); //#e26100 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(142 * scale, 37.80000305175781 * scale, 140 * scale, 37.80000305175781 * scale, 141 * scale, 37.80000305175781 * scale); ctx.bezierCurveTo(147 * scale, 28.800003051757812 * scale, 149 * scale, 26.800003051757812 * scale, 153 * scale, 32.80000305175781 * scale); ctx.bezierCurveTo(160 * scale, 42.80000305175781 * scale, 157 * scale, 50.80000305175781 * scale, 153 * scale, 58.80000305175781 * scale); ctx.bezierCurveTo(148 * scale, 62.80000305175781 * scale, 147 * scale, 59.80000305175781 * scale, 143 * scale, 52.80000305175781 * scale); ctx.bezierCurveTo(129 * scale, 52.80000305175781 * scale, 129 * scale, 52.80000305175781 * scale, 115 * scale, 52.80000305175781 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#e26100 #000000 circle(ctx, 78 * scale, 44.80000305175781 * scale, 39.44616584663204 * scale); fill_path(ctx, color[2], color[1], 4 * scale); //#e26100 #000000 circle(ctx, 78 * scale, 44.80000305175781 * scale, 29.68164415931166 * scale); fill_path(ctx, color[3], color[1], 4 * scale); //#e26100 #000000 circle(ctx, 78 * scale, 44 * scale, 20 * scale); fill_path(ctx, color[4]); //#396100 return can; } function create_pirahna(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 158 * scale; can.height = 201 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96.5 * scale, 76.421875 * scale); ctx.bezierCurveTo(100.5 * scale, 64.421875 * scale, 103.5 * scale, 62.421875 * scale, 110.5 * scale, 65.421875 * scale); ctx.bezierCurveTo(116.5 * scale, 66.421875 * scale, 117.5 * scale, 67.421875 * scale, 112.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(107 * scale, 79.921875 * scale, 107 * scale, 79.921875 * scale, 101.5 * scale, 86.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(61.5 * scale, 78.421875 * scale); ctx.bezierCurveTo(57.5 * scale, 73.421875 * scale, 51.5 * scale, 66.421875 * scale, 45.5 * scale, 68.421875 * scale); ctx.bezierCurveTo(32.5 * scale, 73.421875 * scale, 38.5 * scale, 75.421875 * scale, 46.5 * scale, 81.421875 * scale); ctx.bezierCurveTo(51.5 * scale, 84.921875 * scale, 51.5 * scale, 84.921875 * scale, 56.5 * scale, 88.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 127.421875 * scale); ctx.bezierCurveTo(124.5 * scale, 108.421875 * scale, 129.5 * scale, 104.421875 * scale, 141.5 * scale, 107.421875 * scale); ctx.bezierCurveTo(156.5 * scale, 112.421875 * scale, 153.5 * scale, 113.421875 * scale, 132.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(123.5 * scale, 141.921875 * scale, 123.5 * scale, 141.921875 * scale, 114.5 * scale, 149.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(30.5 * scale, 119.421875 * scale, 25.5 * scale, 111.421875 * scale, 12.5 * scale, 115.421875 * scale); ctx.bezierCurveTo(4.5 * scale, 120.421875 * scale, 4.5 * scale, 121.421875 * scale, 26.5 * scale, 142.421875 * scale); ctx.bezierCurveTo(35 * scale, 149.921875 * scale, 35 * scale, 149.921875 * scale, 43.5 * scale, 157.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(78.5 * scale, 51.921875 * scale); ctx.bezierCurveTo(99.5 * scale, 75.921875 * scale, 110.5 * scale, 96.921875 * scale, 118.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(121.5 * scale, 140.921875 * scale, 107.5 * scale, 179.921875 * scale, 75.5 * scale, 183.921875 * scale); ctx.bezierCurveTo(30.5 * scale, 169.921875 * scale, 37.5 * scale, 131.921875 * scale, 34.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(41.5 * scale, 89.921875 * scale, 61.5 * scale, 67.921875 * scale, 78.5 * scale, 51.921875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 72.421875 * scale); ctx.bezierCurveTo(76.5 * scale, 79.421875 * scale, 79.5 * scale, 80.421875 * scale, 83.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(80.5 * scale, 96.921875 * scale, 79.5 * scale, 114.421875 * scale, 77.5 * scale, 120.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.5 * scale, 163.421875 * scale); ctx.bezierCurveTo(62.5 * scale, 185.421875 * scale, 86.5 * scale, 186.421875 * scale, 111.5 * scale, 165.421875 * scale); ctx.bezierCurveTo(107.5 * scale, 176.421875 * scale, 95.5 * scale, 187.421875 * scale, 75.5 * scale, 188.421875 * scale); ctx.bezierCurveTo(53.5 * scale, 188.421875 * scale, 43.5 * scale, 171.421875 * scale, 42.5 * scale, 164.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 8 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79.5 * scale, 61.421875 * scale); ctx.bezierCurveTo(88.5 * scale, 31.421875 * scale, 81.5 * scale, 16.421875 * scale, 75.5 * scale, 7.421875 * scale); ctx.bezierCurveTo(77.5 * scale, 28.421875 * scale, 77.5 * scale, 37.421875 * scale, 68.5 * scale, 42.421875 * scale); ctx.bezierCurveTo(79.5 * scale, 57.421875 * scale, 79.5 * scale, 58.421875 * scale, 80.5 * scale, 61.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 72.421875 * scale); ctx.bezierCurveTo(76.5 * scale, 79.421875 * scale, 79.5 * scale, 80.421875 * scale, 83.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(80.5 * scale, 96.921875 * scale, 79.5 * scale, 114.421875 * scale, 77.5 * scale, 120.421875 * scale); ctx.closePath(); fill_path(ctx, color[8], color[8], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96.5 * scale, 76.421875 * scale); ctx.bezierCurveTo(100.5 * scale, 64.421875 * scale, 103.5 * scale, 62.421875 * scale, 110.5 * scale, 65.421875 * scale); ctx.bezierCurveTo(116.5 * scale, 66.421875 * scale, 117.5 * scale, 67.421875 * scale, 112.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(107 * scale, 79.921875 * scale, 107 * scale, 79.921875 * scale, 101.5 * scale, 86.421875 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(61.5 * scale, 78.421875 * scale); ctx.bezierCurveTo(57.5 * scale, 73.421875 * scale, 51.5 * scale, 66.421875 * scale, 45.5 * scale, 68.421875 * scale); ctx.bezierCurveTo(32.5 * scale, 73.421875 * scale, 38.5 * scale, 75.421875 * scale, 46.5 * scale, 81.421875 * scale); ctx.bezierCurveTo(51.5 * scale, 84.921875 * scale, 51.5 * scale, 84.921875 * scale, 56.5 * scale, 88.421875 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 127.421875 * scale); ctx.bezierCurveTo(124.5 * scale, 108.421875 * scale, 129.5 * scale, 104.421875 * scale, 141.5 * scale, 107.421875 * scale); ctx.bezierCurveTo(156.5 * scale, 112.421875 * scale, 153.5 * scale, 113.421875 * scale, 132.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(123.5 * scale, 141.921875 * scale, 123.5 * scale, 141.921875 * scale, 114.5 * scale, 149.421875 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(30.5 * scale, 119.421875 * scale, 25.5 * scale, 111.421875 * scale, 12.5 * scale, 115.421875 * scale); ctx.bezierCurveTo(4.5 * scale, 120.421875 * scale, 4.5 * scale, 121.421875 * scale, 26.5 * scale, 142.421875 * scale); ctx.bezierCurveTo(35 * scale, 149.921875 * scale, 35 * scale, 149.921875 * scale, 43.5 * scale, 157.421875 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(78.5 * scale, 51.921875 * scale); ctx.bezierCurveTo(99.5 * scale, 75.921875 * scale, 110.5 * scale, 96.921875 * scale, 118.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(121.5 * scale, 140.921875 * scale, 107.5 * scale, 179.921875 * scale, 75.5 * scale, 183.921875 * scale); ctx.bezierCurveTo(30.5 * scale, 169.921875 * scale, 37.5 * scale, 131.921875 * scale, 34.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(41.5 * scale, 89.921875 * scale, 61.5 * scale, 67.921875 * scale, 78.5 * scale, 51.921875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#4aac82 #b6cdd9 circle(ctx, 108.5 * scale, 148.421875 * scale, 9 * scale); fill_path(ctx, color[5]); //#cdac82 circle(ctx, 106.5 * scale, 144.421875 * scale, 3 * scale); fill_path(ctx, color[6]); //#222582 circle(ctx, 46.5 * scale, 148.421875 * scale, 9 * scale); fill_path(ctx, color[5]); //#222582 circle(ctx, 44.5 * scale, 144.421875 * scale, 3 * scale); fill_path(ctx, color[6]); //#c42582 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 114.421875 * scale); ctx.bezierCurveTo(121.5 * scale, 137.421875 * scale, 118.5 * scale, 133.421875 * scale, 108.5 * scale, 139.421875 * scale); ctx.bezierCurveTo(94.5 * scale, 146.421875 * scale, 96.5 * scale, 148.421875 * scale, 95.5 * scale, 152.421875 * scale); fill_path(ctx, color[3], color[2], 4 * scale); //#4aac82 #b6cdd9 ctx.beginPath(); ctx.translate(0, -2 * scale); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(35.5 * scale, 131.421875 * scale); ctx.bezierCurveTo(36.5 * scale, 140.421875 * scale, 39.5 * scale, 140.421875 * scale, 49.5 * scale, 143.421875 * scale); ctx.bezierCurveTo(59.5 * scale, 149.421875 * scale, 57.5 * scale, 151.421875 * scale, 59.5 * scale, 155.421875 * scale); fill_path(ctx, color[3], color[2], 4 * scale); //#4aac82 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84.5 * scale, 57.421875 * scale); ctx.bezierCurveTo(101.5 * scale, 120.421875 * scale, 92.5 * scale, 127.421875 * scale, 78.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(51.5 * scale, 131.421875 * scale, 63.5 * scale, 102.421875 * scale, 70.5 * scale, 59.421875 * scale); ctx.bezierCurveTo(75 * scale, 55.421875 * scale, 78.5 * scale, 52.421875 * scale, 79.5 * scale, 51.421875 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#cdac82 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79.5 * scale, 61.421875 * scale); ctx.bezierCurveTo(88.5 * scale, 31.421875 * scale, 81.5 * scale, 16.421875 * scale, 75.5 * scale, 7.421875 * scale); ctx.bezierCurveTo(77.5 * scale, 28.421875 * scale, 77.5 * scale, 37.421875 * scale, 68.5 * scale, 42.421875 * scale); ctx.bezierCurveTo(79.5 * scale, 57.421875 * scale, 79.5 * scale, 58.421875 * scale, 80.5 * scale, 61.421875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#4aac82 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 72.421875 * scale); ctx.bezierCurveTo(76.5 * scale, 79.421875 * scale, 79.5 * scale, 80.421875 * scale, 83.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(80.5 * scale, 96.921875 * scale, 79.5 * scale, 114.421875 * scale, 77.5 * scale, 120.421875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#4aac82 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(87.5 * scale, 154.421875 * scale); ctx.bezierCurveTo(93.5 * scale, 163.921875 * scale, 93.5 * scale, 163.921875 * scale, 99.5 * scale, 173.421875 * scale); ctx.bezierCurveTo(95 * scale, 177.421875 * scale, 95 * scale, 177.421875 * scale, 90.5 * scale, 181.421875 * scale); ctx.bezierCurveTo(89 * scale, 167.921875 * scale, 89 * scale, 167.921875 * scale, 87.5 * scale, 154.421875 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 2 * scale); //#c42582 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(81.5 * scale, 164.421875 * scale); ctx.bezierCurveTo(84 * scale, 172.921875 * scale, 84 * scale, 172.921875 * scale, 86.5 * scale, 181.421875 * scale); ctx.bezierCurveTo(82.5 * scale, 182.421875 * scale, 82.5 * scale, 182.421875 * scale, 78.5 * scale, 183.421875 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 2 * scale); //#c42582 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 164.421875 * scale); ctx.bezierCurveTo(73.5 * scale, 173.921875 * scale, 73.5 * scale, 173.921875 * scale, 74.5 * scale, 183.421875 * scale); ctx.bezierCurveTo(70.5 * scale, 182.921875 * scale, 70.5 * scale, 182.921875 * scale, 66.5 * scale, 182.421875 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 2 * scale); //#c42582 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(65.5 * scale, 156.421875 * scale); ctx.bezierCurveTo(65 * scale, 168.421875 * scale, 65 * scale, 168.421875 * scale, 64.5 * scale, 180.421875 * scale); ctx.bezierCurveTo(58.5 * scale, 177.421875 * scale, 58.5 * scale, 177.421875 * scale, 52.5 * scale, 174.421875 * scale); ctx.closePath(); fill_path(ctx, color[6], color[7], 2 * scale); //#c42582 #b6cdd9 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.5 * scale, 163.421875 * scale); ctx.bezierCurveTo(62.5 * scale, 185.421875 * scale, 86.5 * scale, 186.421875 * scale, 111.5 * scale, 165.421875 * scale); ctx.bezierCurveTo(107.5 * scale, 176.421875 * scale, 95.5 * scale, 187.421875 * scale, 75.5 * scale, 188.421875 * scale); ctx.bezierCurveTo(53.5 * scale, 188.421875 * scale, 43.5 * scale, 171.421875 * scale, 42.5 * scale, 164.421875 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#c42582 #682c2e return can; } function create_hurt_pirahna(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 158 * scale; can.height = 201 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96.5 * scale, 76.421875 * scale); ctx.bezierCurveTo(100.5 * scale, 64.421875 * scale, 103.5 * scale, 62.421875 * scale, 110.5 * scale, 65.421875 * scale); ctx.bezierCurveTo(116.5 * scale, 66.421875 * scale, 117.5 * scale, 67.421875 * scale, 112.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(107 * scale, 79.921875 * scale, 107 * scale, 79.921875 * scale, 101.5 * scale, 86.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(61.5 * scale, 78.421875 * scale); ctx.bezierCurveTo(57.5 * scale, 73.421875 * scale, 51.5 * scale, 66.421875 * scale, 45.5 * scale, 68.421875 * scale); ctx.bezierCurveTo(32.5 * scale, 73.421875 * scale, 38.5 * scale, 75.421875 * scale, 46.5 * scale, 81.421875 * scale); ctx.bezierCurveTo(51.5 * scale, 84.921875 * scale, 51.5 * scale, 84.921875 * scale, 56.5 * scale, 88.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(116.5 * scale, 127.421875 * scale); ctx.bezierCurveTo(124.5 * scale, 108.421875 * scale, 129.5 * scale, 104.421875 * scale, 141.5 * scale, 107.421875 * scale); ctx.bezierCurveTo(156.5 * scale, 112.421875 * scale, 153.5 * scale, 113.421875 * scale, 132.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(123.5 * scale, 141.921875 * scale, 123.5 * scale, 141.921875 * scale, 114.5 * scale, 149.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(41.5 * scale, 134.421875 * scale); ctx.bezierCurveTo(30.5 * scale, 119.421875 * scale, 25.5 * scale, 111.421875 * scale, 12.5 * scale, 115.421875 * scale); ctx.bezierCurveTo(4.5 * scale, 120.421875 * scale, 4.5 * scale, 121.421875 * scale, 26.5 * scale, 142.421875 * scale); ctx.bezierCurveTo(35 * scale, 149.921875 * scale, 35 * scale, 149.921875 * scale, 43.5 * scale, 157.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(78.5 * scale, 51.921875 * scale); ctx.bezierCurveTo(99.5 * scale, 75.921875 * scale, 110.5 * scale, 96.921875 * scale, 118.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(121.5 * scale, 140.921875 * scale, 107.5 * scale, 179.921875 * scale, 75.5 * scale, 183.921875 * scale); ctx.bezierCurveTo(30.5 * scale, 169.921875 * scale, 37.5 * scale, 131.921875 * scale, 34.5 * scale, 120.921875 * scale); ctx.bezierCurveTo(41.5 * scale, 89.921875 * scale, 61.5 * scale, 67.921875 * scale, 78.5 * scale, 51.921875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 72.421875 * scale); ctx.bezierCurveTo(76.5 * scale, 79.421875 * scale, 79.5 * scale, 80.421875 * scale, 83.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(80.5 * scale, 96.921875 * scale, 79.5 * scale, 114.421875 * scale, 77.5 * scale, 120.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(42.5 * scale, 163.421875 * scale); ctx.bezierCurveTo(62.5 * scale, 185.421875 * scale, 86.5 * scale, 186.421875 * scale, 111.5 * scale, 165.421875 * scale); ctx.bezierCurveTo(107.5 * scale, 176.421875 * scale, 95.5 * scale, 187.421875 * scale, 75.5 * scale, 188.421875 * scale); ctx.bezierCurveTo(53.5 * scale, 188.421875 * scale, 43.5 * scale, 171.421875 * scale, 42.5 * scale, 164.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79.5 * scale, 61.421875 * scale); ctx.bezierCurveTo(88.5 * scale, 31.421875 * scale, 81.5 * scale, 16.421875 * scale, 75.5 * scale, 7.421875 * scale); ctx.bezierCurveTo(77.5 * scale, 28.421875 * scale, 77.5 * scale, 37.421875 * scale, 68.5 * scale, 42.421875 * scale); ctx.bezierCurveTo(79.5 * scale, 57.421875 * scale, 79.5 * scale, 58.421875 * scale, 80.5 * scale, 61.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(72.5 * scale, 72.421875 * scale); ctx.bezierCurveTo(76.5 * scale, 79.421875 * scale, 79.5 * scale, 80.421875 * scale, 83.5 * scale, 73.421875 * scale); ctx.bezierCurveTo(80.5 * scale, 96.921875 * scale, 79.5 * scale, 114.421875 * scale, 77.5 * scale, 120.421875 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#4a4e53 #4d4a43 return can; } function create_flour(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 170 * scale; ctx.translate(0, -170 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(159.5 * scale, 322.0625 * scale); ctx.bezierCurveTo(240.5 * scale, 293.0625 * scale, 240.5 * scale, 293.0625 * scale, 321.5 * scale, 264.0625 * scale); ctx.bezierCurveTo(276.5 * scale, 230.0625 * scale, 276.5 * scale, 230.0625 * scale, 231.5 * scale, 196.0625 * scale); ctx.bezierCurveTo(158.5 * scale, 221.5625 * scale, 158.5 * scale, 221.5625 * scale, 85.5 * scale, 247.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 12 * scale); //#b3aa8e #817961 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(212.5 * scale, 270.0625 * scale); ctx.bezierCurveTo(235 * scale, 261.5625 * scale, 235 * scale, 261.5625 * scale, 257.5 * scale, 253.0625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 12 * scale); //#aba281 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(193.5 * scale, 226.0625 * scale); ctx.bezierCurveTo(204.5 * scale, 242.0625 * scale, 242.5 * scale, 237.0625 * scale, 251.5 * scale, 225.0625 * scale); ctx.bezierCurveTo(246.5 * scale, 195.0625 * scale, 205.5 * scale, 190.0625 * scale, 193.5 * scale, 227.0625 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#ebeae2 #d9d7cc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(164.5 * scale, 245.0625 * scale); ctx.bezierCurveTo(182.5 * scale, 264.0625 * scale, 252.5 * scale, 258.0625 * scale, 276.5 * scale, 244.0625 * scale); ctx.bezierCurveTo(265.5 * scale, 226.0625 * scale, 244.5 * scale, 231.0625 * scale, 229.5 * scale, 230.0625 * scale); ctx.bezierCurveTo(205.5 * scale, 227.0625 * scale, 175.5 * scale, 202.0625 * scale, 162.5 * scale, 244.0625 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#ebeae2 #d9d7cc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115.5 * scale, 260.0625 * scale); ctx.bezierCurveTo(134.5 * scale, 279.0625 * scale, 170.5 * scale, 275.0625 * scale, 191.5 * scale, 257.0625 * scale); ctx.bezierCurveTo(174.5 * scale, 208.0625 * scale, 142.5 * scale, 197.0625 * scale, 116.5 * scale, 259.0625 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#ebeae2 #d9d7cc ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(152.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(165.5 * scale, 294.0625 * scale, 200.5 * scale, 287.0625 * scale, 216.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(206.5 * scale, 247.0625 * scale, 173.5 * scale, 233.0625 * scale, 153.5 * scale, 276.0625 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#ebeae2 #d9d7cc return can; } function create_leaderboard_mobile(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = 200 * scale; var h = 180 * scale; var r = 8 * scale; can.width = w; can.height = h; /* Draw background */ ctx.beginPath(); round_rect(ctx, 0, 0, w, h - r, r); ctx.globalAlpha = 0.8; fill_path(ctx, "#1D6055"); ctx.globalAlpha = 1; var text = create_text(scale, "Leaderboard", 25, "#FFF"); ctx.drawImage(text, (w - text.width) / 2, scale * 5); return can; } function create_leaderboard(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = 200 * scale; var h = 270 * scale; var r = 8 * scale; can.width = w; can.height = h + 20; /* Draw background */ ctx.beginPath(); round_rect(ctx, 0, 0, w, h - r, r); ctx.globalAlpha = 0.5; fill_path(ctx, "#1D6055" /*"#403c13"*/); ctx.globalAlpha = 1; var text = create_text(scale, "Leaderboard", 25, "#FFF"); ctx.drawImage(text, (w - text.width) / 2, scale * 5); return can; } function create_pumpkin(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 272 * scale; can.height = 264 * scale; ctx.translate(0, 20 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56.999969482421875 * scale, 84.517333984375 * scale); ctx.bezierCurveTo(61.999969482421875 * scale, 58.517333984375 * scale, 79.99996948242188 * scale, 50.517333984375 * scale, 102.99996948242188 * scale, 50.517333984375 * scale); ctx.bezierCurveTo(119.99996948242188 * scale, 26.517333984375 * scale, 137.99996948242188 * scale, 32.517333984375 * scale, 156.99996948242188 * scale, 44.517333984375 * scale); ctx.bezierCurveTo(187.99996948242188 * scale, 42.517333984375 * scale, 195.99996948242188 * scale, 50.517333984375 * scale, 202.99996948242188 * scale, 77.517333984375 * scale); ctx.bezierCurveTo(229.99996948242188 * scale, 80.517333984375 * scale, 231.99996948242188 * scale, 96.517333984375 * scale, 229.99996948242188 * scale, 118.517333984375 * scale); ctx.bezierCurveTo(241.99996948242188 * scale, 147.517333984375 * scale, 236.99996948242188 * scale, 148.517333984375 * scale, 220.99996948242188 * scale, 165.517333984375 * scale); ctx.bezierCurveTo(222.99996948242188 * scale, 192.517333984375 * scale, 209.99996948242188 * scale, 212.517333984375 * scale, 177.99996948242188 * scale, 213.517333984375 * scale); ctx.bezierCurveTo(159.99996948242188 * scale, 234.517333984375 * scale, 141.99996948242188 * scale, 234.517333984375 * scale, 116.99996948242188 * scale, 222.517333984375 * scale); ctx.bezierCurveTo(72.99996948242188 * scale, 226.517333984375 * scale, 66.99996948242188 * scale, 207.517333984375 * scale, 65.99996948242188 * scale, 190.517333984375 * scale); ctx.bezierCurveTo(35.999969482421875 * scale, 180.517333984375 * scale, 30.999969482421875 * scale, 162.517333984375 * scale, 39.999969482421875 * scale, 135.517333984375 * scale); ctx.bezierCurveTo(23.999969482421875 * scale, 110.517333984375 * scale, 43.999969482421875 * scale, 90.517333984375 * scale, 55.999969482421875 * scale, 85.517333984375 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, -20 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56.999969482421875 * scale, 84.517333984375 * scale); ctx.bezierCurveTo(61.999969482421875 * scale, 58.517333984375 * scale, 79.99996948242188 * scale, 50.517333984375 * scale, 102.99996948242188 * scale, 50.517333984375 * scale); ctx.bezierCurveTo(119.99996948242188 * scale, 26.517333984375 * scale, 137.99996948242188 * scale, 32.517333984375 * scale, 156.99996948242188 * scale, 44.517333984375 * scale); ctx.bezierCurveTo(187.99996948242188 * scale, 42.517333984375 * scale, 195.99996948242188 * scale, 50.517333984375 * scale, 202.99996948242188 * scale, 77.517333984375 * scale); ctx.bezierCurveTo(229.99996948242188 * scale, 80.517333984375 * scale, 231.99996948242188 * scale, 96.517333984375 * scale, 229.99996948242188 * scale, 118.517333984375 * scale); ctx.bezierCurveTo(241.99996948242188 * scale, 147.517333984375 * scale, 236.99996948242188 * scale, 148.517333984375 * scale, 220.99996948242188 * scale, 165.517333984375 * scale); ctx.bezierCurveTo(222.99996948242188 * scale, 192.517333984375 * scale, 209.99996948242188 * scale, 212.517333984375 * scale, 177.99996948242188 * scale, 213.517333984375 * scale); ctx.bezierCurveTo(159.99996948242188 * scale, 234.517333984375 * scale, 141.99996948242188 * scale, 234.517333984375 * scale, 116.99996948242188 * scale, 222.517333984375 * scale); ctx.bezierCurveTo(72.99996948242188 * scale, 226.517333984375 * scale, 66.99996948242188 * scale, 207.517333984375 * scale, 65.99996948242188 * scale, 190.517333984375 * scale); ctx.bezierCurveTo(35.999969482421875 * scale, 180.517333984375 * scale, 30.999969482421875 * scale, 162.517333984375 * scale, 39.999969482421875 * scale, 135.517333984375 * scale); ctx.bezierCurveTo(23.999969482421875 * scale, 110.517333984375 * scale, 43.999969482421875 * scale, 90.517333984375 * scale, 55.999969482421875 * scale, 85.517333984375 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(123.99996948242188 * scale, 116.18402099609375 * scale); ctx.bezierCurveTo(115.99996948242188 * scale, 99.18402099609375 * scale, 109.99996948242188 * scale, 74.18402099609375 * scale, 109.99996948242188 * scale, 63.18402099609375 * scale); ctx.bezierCurveTo(115.99996948242188 * scale, 69.18402099609375 * scale, 125.99996948242188 * scale, 87.18402099609375 * scale, 137.99996948242188 * scale, 112.18402099609375 * scale); ctx.bezierCurveTo(142.99996948242188 * scale, 84.18402099609375 * scale, 143.99996948242188 * scale, 76.18402099609375 * scale, 153.99996948242188 * scale, 62.18402099609375 * scale); ctx.bezierCurveTo(155.99996948242188 * scale, 79.18402099609375 * scale, 149.99996948242188 * scale, 110.18402099609375 * scale, 151.99996948242188 * scale, 117.18402099609375 * scale); ctx.bezierCurveTo(162.99996948242188 * scale, 104.18402099609375 * scale, 180.99996948242188 * scale, 91.18402099609375 * scale, 191.99996948242188 * scale, 91.18402099609375 * scale); ctx.bezierCurveTo(185.99996948242188 * scale, 102.18402099609375 * scale, 180.99996948242188 * scale, 106.18402099609375 * scale, 160.99996948242188 * scale, 124.18402099609375 * scale); ctx.bezierCurveTo(190.99996948242188 * scale, 121.18402099609375 * scale, 199.99996948242188 * scale, 120.18402099609375 * scale, 207.99996948242188 * scale, 123.18402099609375 * scale); ctx.bezierCurveTo(199.99996948242188 * scale, 129.18402099609375 * scale, 181.99996948242188 * scale, 132.18402099609375 * scale, 160.99996948242188 * scale, 135.18402099609375 * scale); ctx.bezierCurveTo(179.99996948242188 * scale, 142.18402099609375 * scale, 193.99996948242188 * scale, 151.18402099609375 * scale, 196.99996948242188 * scale, 156.18402099609375 * scale); ctx.bezierCurveTo(185.99996948242188 * scale, 156.18402099609375 * scale, 163.99996948242188 * scale, 149.18402099609375 * scale, 152.99996948242188 * scale, 147.18402099609375 * scale); ctx.bezierCurveTo(157.99996948242188 * scale, 155.18402099609375 * scale, 165.99996948242188 * scale, 176.18402099609375 * scale, 169.99996948242188 * scale, 195.18402099609375 * scale); ctx.bezierCurveTo(162.99996948242188 * scale, 190.18402099609375 * scale, 147.99996948242188 * scale, 167.18402099609375 * scale, 139.99996948242188 * scale, 153.18402099609375 * scale); ctx.bezierCurveTo(137.99996948242188 * scale, 167.18402099609375 * scale, 126.99996948242188 * scale, 194.18402099609375 * scale, 119.99996948242188 * scale, 204.18402099609375 * scale); ctx.bezierCurveTo(117.99996948242188 * scale, 186.18402099609375 * scale, 123.99996948242188 * scale, 165.18402099609375 * scale, 126.99996948242188 * scale, 149.18402099609375 * scale); ctx.bezierCurveTo(110.99996948242188 * scale, 163.18402099609375 * scale, 103.99996948242188 * scale, 170.18402099609375 * scale, 82.99996948242188 * scale, 177.18402099609375 * scale); ctx.bezierCurveTo(90.99996948242188 * scale, 162.18402099609375 * scale, 99.99996948242188 * scale, 153.18402099609375 * scale, 117.99996948242188 * scale, 140.18402099609375 * scale); ctx.bezierCurveTo(97.99996948242188 * scale, 140.18402099609375 * scale, 83.99996948242188 * scale, 139.18402099609375 * scale, 65.99996948242188 * scale, 132.18402099609375 * scale); ctx.bezierCurveTo(77.99996948242188 * scale, 127.18402099609375 * scale, 95.99996948242188 * scale, 127.18402099609375 * scale, 115.99996948242188 * scale, 127.18402099609375 * scale); ctx.bezierCurveTo(91.99996948242188 * scale, 113.18402099609375 * scale, 84.99996948242188 * scale, 107.18402099609375 * scale, 76.99996948242188 * scale, 96.18402099609375 * scale); ctx.bezierCurveTo(94.99996948242188 * scale, 99.18402099609375 * scale, 109.99996948242188 * scale, 109.18402099609375 * scale, 123.99996948242188 * scale, 116.18402099609375 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(131.99996948242188 * scale, 119.18402099609375 * scale); ctx.bezierCurveTo(141.99996948242188 * scale, 119.18402099609375 * scale, 145.99996948242188 * scale, 116.18402099609375 * scale, 147.99996948242188 * scale, 109.18402099609375 * scale); ctx.bezierCurveTo(151.99996948242188 * scale, 107.18402099609375 * scale, 159.99996948242188 * scale, 107.18402099609375 * scale, 156.99996948242188 * scale, 123.18402099609375 * scale); ctx.bezierCurveTo(155.99996948242188 * scale, 140.18402099609375 * scale, 142.99996948242188 * scale, 149.18402099609375 * scale, 132.99996948242188 * scale, 147.18402099609375 * scale); ctx.bezierCurveTo(119.99996948242188 * scale, 144.18402099609375 * scale, 113.99996948242188 * scale, 122.18402099609375 * scale, 131.99996948242188 * scale, 119.18402099609375 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 6 * scale); //#9e793d #5f461f return can; } function create_brambles(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 247 * scale; can.height = 247 * scale; ctx.translate(0, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(150 * scale, 62 * scale); ctx.bezierCurveTo(151.5 * scale, 71.5 * scale, 149 * scale, 70 * scale, 153 * scale, 81 * scale); ctx.bezierCurveTo(158 * scale, 73.5 * scale, 158 * scale, 73.5 * scale, 163 * scale, 66 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(164 * scale, 171 * scale); ctx.bezierCurveTo(149 * scale, 159 * scale, 156.5 * scale, 165 * scale, 149 * scale, 159 * scale); ctx.bezierCurveTo(149 * scale, 167 * scale, 149 * scale, 170 * scale, 152 * scale, 178 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(132 * scale, 95 * scale); ctx.bezierCurveTo(154 * scale, 102 * scale, 154 * scale, 126 * scale, 137 * scale, 139 * scale); ctx.bezierCurveTo(113 * scale, 152 * scale, 89 * scale, 136 * scale, 80 * scale, 121 * scale); ctx.bezierCurveTo(57 * scale, 89 * scale, 69 * scale, 63 * scale, 79 * scale, 52 * scale); ctx.bezierCurveTo(110 * scale, 20 * scale, 139 * scale, 21 * scale, 150 * scale, 25 * scale); ctx.bezierCurveTo(197 * scale, 36 * scale, 221 * scale, 67 * scale, 226 * scale, 90 * scale); ctx.bezierCurveTo(234 * scale, 134 * scale, 214 * scale, 177 * scale, 195 * scale, 197 * scale); ctx.bezierCurveTo(144 * scale, 242 * scale, 79 * scale, 216 * scale, 58 * scale, 206 * scale); ctx.bezierCurveTo(13 * scale, 174 * scale, 20 * scale, 134 * scale, 23 * scale, 107 * scale); ctx.bezierCurveTo(26 * scale, 78 * scale, 33 * scale, 60 * scale, 38 * scale, 43 * scale); ctx.bezierCurveTo(42 * scale, 32 * scale, 47 * scale, 32 * scale, 50 * scale, 36 * scale); ctx.bezierCurveTo(54 * scale, 37 * scale, 50 * scale, 52 * scale, 44 * scale, 87 * scale); ctx.bezierCurveTo(40 * scale, 115 * scale, 46 * scale, 142 * scale, 57 * scale, 158 * scale); ctx.bezierCurveTo(76 * scale, 189 * scale, 129 * scale, 182 * scale, 152 * scale, 173 * scale); ctx.bezierCurveTo(186 * scale, 156 * scale, 191 * scale, 106 * scale, 176 * scale, 85 * scale); ctx.bezierCurveTo(159 * scale, 61 * scale, 132 * scale, 62 * scale, 122 * scale, 66 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 108 * scale, 89 * scale, 116 * scale, 90 * scale); ctx.bezierCurveTo(123 * scale, 92 * scale, 130 * scale, 93 * scale, 131 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.translate(0, -10 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(150 * scale, 62 * scale); ctx.bezierCurveTo(151.5 * scale, 71.5 * scale, 149 * scale, 70 * scale, 153 * scale, 81 * scale); ctx.bezierCurveTo(158 * scale, 73.5 * scale, 158 * scale, 73.5 * scale, 163 * scale, 66 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(164 * scale, 171 * scale); ctx.bezierCurveTo(149 * scale, 159 * scale, 156.5 * scale, 165 * scale, 149 * scale, 159 * scale); ctx.bezierCurveTo(149 * scale, 167 * scale, 149 * scale, 170 * scale, 152 * scale, 178 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#9e793d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(132 * scale, 95 * scale); ctx.bezierCurveTo(154 * scale, 102 * scale, 154 * scale, 126 * scale, 137 * scale, 139 * scale); ctx.bezierCurveTo(113 * scale, 152 * scale, 89 * scale, 136 * scale, 80 * scale, 121 * scale); ctx.bezierCurveTo(57 * scale, 89 * scale, 69 * scale, 63 * scale, 79 * scale, 52 * scale); ctx.bezierCurveTo(110 * scale, 20 * scale, 139 * scale, 21 * scale, 150 * scale, 25 * scale); ctx.bezierCurveTo(197 * scale, 36 * scale, 221 * scale, 67 * scale, 226 * scale, 90 * scale); ctx.bezierCurveTo(234 * scale, 134 * scale, 214 * scale, 177 * scale, 195 * scale, 197 * scale); ctx.bezierCurveTo(144 * scale, 242 * scale, 79 * scale, 216 * scale, 58 * scale, 206 * scale); ctx.bezierCurveTo(13 * scale, 174 * scale, 20 * scale, 134 * scale, 23 * scale, 107 * scale); ctx.bezierCurveTo(26 * scale, 78 * scale, 33 * scale, 60 * scale, 38 * scale, 43 * scale); ctx.bezierCurveTo(42 * scale, 32 * scale, 47 * scale, 32 * scale, 50 * scale, 36 * scale); ctx.bezierCurveTo(54 * scale, 37 * scale, 50 * scale, 52 * scale, 44 * scale, 87 * scale); ctx.bezierCurveTo(40 * scale, 115 * scale, 46 * scale, 142 * scale, 57 * scale, 158 * scale); ctx.bezierCurveTo(76 * scale, 189 * scale, 129 * scale, 182 * scale, 152 * scale, 173 * scale); ctx.bezierCurveTo(186 * scale, 156 * scale, 191 * scale, 106 * scale, 176 * scale, 85 * scale); ctx.bezierCurveTo(159 * scale, 61 * scale, 132 * scale, 62 * scale, 122 * scale, 66 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 108 * scale, 89 * scale, 116 * scale, 90 * scale); ctx.bezierCurveTo(123 * scale, 92 * scale, 130 * scale, 93 * scale, 131 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(137 * scale, 137 * scale); ctx.bezierCurveTo(145 * scale, 125 * scale, 138 * scale, 108 * scale, 123 * scale, 104 * scale); ctx.bezierCurveTo(81 * scale, 101 * scale, 88 * scale, 77 * scale, 98 * scale, 65 * scale); ctx.bezierCurveTo(117 * scale, 38 * scale, 138 * scale, 39 * scale, 165 * scale, 52 * scale); ctx.bezierCurveTo(197 * scale, 72 * scale, 207 * scale, 111 * scale, 197 * scale, 140 * scale); ctx.bezierCurveTo(182 * scale, 180 * scale, 161 * scale, 197 * scale, 112 * scale, 194 * scale); ctx.bezierCurveTo(58 * scale, 194 * scale, 37 * scale, 170 * scale, 34 * scale, 142 * scale); ctx.bezierCurveTo(29 * scale, 102 * scale, 40 * scale, 63 * scale, 51 * scale, 45 * scale); ctx.bezierCurveTo(43 * scale, 78 * scale, 41 * scale, 103 * scale, 43 * scale, 122 * scale); ctx.bezierCurveTo(51 * scale, 158 * scale, 63 * scale, 174 * scale, 95 * scale, 179 * scale); ctx.bezierCurveTo(129 * scale, 186 * scale, 169 * scale, 172 * scale, 177 * scale, 144 * scale); ctx.bezierCurveTo(197 * scale, 105 * scale, 172 * scale, 76 * scale, 160 * scale, 71 * scale); ctx.bezierCurveTo(125 * scale, 52 * scale, 111 * scale, 73 * scale, 111 * scale, 81 * scale); ctx.bezierCurveTo(106 * scale, 93 * scale, 140 * scale, 92 * scale, 147 * scale, 107 * scale); ctx.bezierCurveTo(153 * scale, 128 * scale, 140 * scale, 135 * scale, 137 * scale, 139 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#8c586d #384c48 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(132 * scale, 95 * scale); ctx.bezierCurveTo(154 * scale, 102 * scale, 154 * scale, 126 * scale, 137 * scale, 139 * scale); ctx.bezierCurveTo(113 * scale, 152 * scale, 89 * scale, 136 * scale, 80 * scale, 121 * scale); ctx.bezierCurveTo(57 * scale, 89 * scale, 69 * scale, 63 * scale, 79 * scale, 52 * scale); ctx.bezierCurveTo(110 * scale, 20 * scale, 139 * scale, 21 * scale, 150 * scale, 25 * scale); ctx.bezierCurveTo(197 * scale, 36 * scale, 221 * scale, 67 * scale, 226 * scale, 90 * scale); ctx.bezierCurveTo(234 * scale, 134 * scale, 214 * scale, 177 * scale, 195 * scale, 197 * scale); ctx.bezierCurveTo(144 * scale, 242 * scale, 79 * scale, 216 * scale, 58 * scale, 206 * scale); ctx.bezierCurveTo(13 * scale, 174 * scale, 20 * scale, 134 * scale, 23 * scale, 107 * scale); ctx.bezierCurveTo(26 * scale, 78 * scale, 33 * scale, 60 * scale, 38 * scale, 43 * scale); ctx.bezierCurveTo(42 * scale, 32 * scale, 47 * scale, 32 * scale, 50 * scale, 36 * scale); ctx.bezierCurveTo(54 * scale, 37 * scale, 50 * scale, 52 * scale, 44 * scale, 87 * scale); ctx.bezierCurveTo(40 * scale, 115 * scale, 46 * scale, 142 * scale, 57 * scale, 158 * scale); ctx.bezierCurveTo(76 * scale, 189 * scale, 129 * scale, 182 * scale, 152 * scale, 173 * scale); ctx.bezierCurveTo(186 * scale, 156 * scale, 191 * scale, 106 * scale, 176 * scale, 85 * scale); ctx.bezierCurveTo(159 * scale, 61 * scale, 132 * scale, 62 * scale, 122 * scale, 66 * scale); ctx.bezierCurveTo(108 * scale, 74 * scale, 108 * scale, 89 * scale, 116 * scale, 90 * scale); ctx.bezierCurveTo(123 * scale, 92 * scale, 130 * scale, 93 * scale, 131 * scale, 94 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 5 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(82 * scale, 63 * scale); ctx.bezierCurveTo(91 * scale, 64 * scale, 96 * scale, 62 * scale, 98 * scale, 53 * scale); ctx.bezierCurveTo(91 * scale, 45 * scale, 85 * scale, 42 * scale, 78 * scale, 41 * scale); ctx.bezierCurveTo(81 * scale, 51 * scale, 82 * scale, 57 * scale, 82 * scale, 63 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(148 * scale, 40 * scale); ctx.bezierCurveTo(140 * scale, 52 * scale, 131 * scale, 51 * scale, 123 * scale, 43 * scale); ctx.bezierCurveTo(123 * scale, 25 * scale, 129 * scale, 17 * scale, 134 * scale, 12 * scale); ctx.bezierCurveTo(138 * scale, 35 * scale, 142 * scale, 31 * scale, 148 * scale, 40 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(189 * scale, 43 * scale); ctx.bezierCurveTo(191 * scale, 54 * scale, 196 * scale, 58 * scale, 205 * scale, 59 * scale); ctx.bezierCurveTo(211 * scale, 42 * scale, 214 * scale, 37 * scale, 216 * scale, 31 * scale); ctx.bezierCurveTo(202 * scale, 34 * scale, 195 * scale, 39 * scale, 190 * scale, 43 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(216 * scale, 98 * scale); ctx.bezierCurveTo(219 * scale, 105 * scale, 225 * scale, 107 * scale, 230 * scale, 109 * scale); ctx.bezierCurveTo(227 * scale, 113 * scale, 221 * scale, 115 * scale, 215 * scale, 115 * scale); ctx.bezierCurveTo(208 * scale, 109 * scale, 211 * scale, 101 * scale, 216 * scale, 98 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(180 * scale, 85 * scale); ctx.bezierCurveTo(193 * scale, 86 * scale, 196 * scale, 98 * scale, 191 * scale, 108 * scale); ctx.bezierCurveTo(179 * scale, 112 * scale, 167 * scale, 113 * scale, 155 * scale, 111 * scale); ctx.bezierCurveTo(169 * scale, 100 * scale, 176 * scale, 96 * scale, 180 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(96 * scale, 114 * scale); ctx.bezierCurveTo(102 * scale, 109 * scale, 112 * scale, 110 * scale, 114 * scale, 118 * scale); ctx.bezierCurveTo(111 * scale, 134 * scale, 102 * scale, 143 * scale, 95 * scale, 147 * scale); ctx.bezierCurveTo(98 * scale, 123 * scale, 97 * scale, 119 * scale, 96 * scale, 115 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 92 * scale); ctx.bezierCurveTo(86 * scale, 95 * scale, 89 * scale, 102 * scale, 83 * scale, 111 * scale); ctx.bezierCurveTo(70 * scale, 110 * scale, 61 * scale, 107 * scale, 54 * scale, 100 * scale); ctx.bezierCurveTo(70 * scale, 97 * scale, 70 * scale, 95 * scale, 78 * scale, 92 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39 * scale, 130 * scale); ctx.bezierCurveTo(37 * scale, 141 * scale, 41 * scale, 143 * scale, 48 * scale, 144 * scale); ctx.bezierCurveTo(54 * scale, 134 * scale, 55 * scale, 131 * scale, 56 * scale, 123 * scale); ctx.bezierCurveTo(47 * scale, 129 * scale, 43 * scale, 129 * scale, 39 * scale, 129 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(113 * scale, 189 * scale); ctx.bezierCurveTo(119 * scale, 201 * scale, 127 * scale, 198 * scale, 134 * scale, 192 * scale); ctx.bezierCurveTo(128 * scale, 175 * scale, 128 * scale, 173 * scale, 128 * scale, 165 * scale); ctx.bezierCurveTo(117 * scale, 176 * scale, 116 * scale, 182 * scale, 113 * scale, 187 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(74 * scale, 154 * scale); ctx.bezierCurveTo(76 * scale, 163 * scale, 76 * scale, 170 * scale, 75 * scale, 177 * scale); ctx.bezierCurveTo(68 * scale, 179 * scale, 66 * scale, 176 * scale, 63 * scale, 171 * scale); ctx.bezierCurveTo(69 * scale, 164 * scale, 72 * scale, 159 * scale, 74 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(206 * scale, 152 * scale); ctx.bezierCurveTo(198 * scale, 158 * scale, 198 * scale, 166 * scale, 201 * scale, 171 * scale); ctx.bezierCurveTo(209 * scale, 170 * scale, 221 * scale, 170 * scale, 226 * scale, 172 * scale); ctx.bezierCurveTo(219 * scale, 159 * scale, 210 * scale, 155 * scale, 207 * scale, 153 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(181 * scale, 184 * scale); ctx.bezierCurveTo(170 * scale, 184 * scale, 167 * scale, 187 * scale, 163 * scale, 195 * scale); ctx.bezierCurveTo(171 * scale, 207 * scale, 183 * scale, 214 * scale, 191 * scale, 217 * scale); ctx.bezierCurveTo(183 * scale, 204 * scale, 184 * scale, 196 * scale, 181 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66 * scale, 199 * scale); ctx.bezierCurveTo(73 * scale, 197 * scale, 78 * scale, 199 * scale, 79 * scale, 206 * scale); ctx.bezierCurveTo(71 * scale, 216 * scale, 67 * scale, 221 * scale, 57 * scale, 223 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(182 * scale, 143 * scale); ctx.bezierCurveTo(183 * scale, 146 * scale, 183 * scale, 149 * scale, 179 * scale, 152 * scale); ctx.bezierCurveTo(174 * scale, 146 * scale, 174 * scale, 146 * scale, 169 * scale, 140 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(32 * scale, 159 * scale); ctx.bezierCurveTo(45 * scale, 160 * scale, 48 * scale, 164 * scale, 45 * scale, 175 * scale); ctx.bezierCurveTo(28 * scale, 183 * scale, 25 * scale, 184 * scale, 19 * scale, 184 * scale); ctx.bezierCurveTo(30 * scale, 170 * scale, 29 * scale, 164 * scale, 31 * scale, 160 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110 * scale, 214 * scale); ctx.bezierCurveTo(106 * scale, 212 * scale, 104 * scale, 213 * scale, 102 * scale, 218 * scale); ctx.bezierCurveTo(104 * scale, 220 * scale, 107 * scale, 222 * scale, 110 * scale, 224 * scale); ctx.bezierCurveTo(110.5 * scale, 219 * scale, 110.5 * scale, 219 * scale, 111 * scale, 214 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(40 * scale, 52 * scale); ctx.bezierCurveTo(41 * scale, 57 * scale, 40 * scale, 61 * scale, 34 * scale, 60 * scale); ctx.bezierCurveTo(31.5 * scale, 55 * scale, 31.5 * scale, 55 * scale, 29 * scale, 50 * scale); ctx.bezierCurveTo(34 * scale, 50.5 * scale, 34 * scale, 50.5 * scale, 39 * scale, 51 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(31 * scale, 81 * scale); ctx.bezierCurveTo(37 * scale, 84 * scale, 38 * scale, 90 * scale, 34 * scale, 99 * scale); ctx.bezierCurveTo(23 * scale, 97 * scale, 19 * scale, 96 * scale, 16 * scale, 93 * scale); ctx.bezierCurveTo(24 * scale, 88 * scale, 28 * scale, 85 * scale, 30 * scale, 81 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 5 * scale); //#68782a #363c08 return can; } function create_hood(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 465 * scale; can.height = 310 * scale; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126 * scale, 192 * scale); ctx.bezierCurveTo(198 * scale, 202 * scale, 245 * scale, 203 * scale, 335 * scale, 194 * scale); ctx.bezierCurveTo(336 * scale, 232 * scale, 326 * scale, 235 * scale, 232 * scale, 237 * scale); ctx.bezierCurveTo(161 * scale, 235 * scale, 122 * scale, 235 * scale, 126 * scale, 193 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#2f2330 #211a22 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(146 * scale, 239 * scale); ctx.bezierCurveTo(174 * scale, 74 * scale, 287 * scale, 88 * scale, 320 * scale, 240 * scale); ctx.bezierCurveTo(329 * scale, 231 * scale, 340 * scale, 219 * scale, 332 * scale, 115 * scale); ctx.bezierCurveTo(330 * scale, 40 * scale, 144 * scale, 30 * scale, 129 * scale, 116 * scale); ctx.bezierCurveTo(124 * scale, 217 * scale, 124 * scale, 228 * scale, 143 * scale, 237 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 4 * scale); //#2f2330 #211a22 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126 * scale, 193 * scale); ctx.bezierCurveTo(173 * scale, 94 * scale, 209 * scale, 100 * scale, 228 * scale, 57 * scale); ctx.bezierCurveTo(190 * scale, 112 * scale, 165 * scale, 115 * scale, 127 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 4 * scale); //#211a22 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(230 * scale, 57 * scale); ctx.bezierCurveTo(266 * scale, 117 * scale, 310 * scale, 130 * scale, 332 * scale, 183 * scale); ctx.bezierCurveTo(290 * scale, 112 * scale, 262 * scale, 109 * scale, 230 * scale, 56 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 4 * scale); //#211a22 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(154 * scale, 212 * scale); ctx.bezierCurveTo(208 * scale, 224 * scale, 252 * scale, 219 * scale, 305 * scale, 212 * scale); ctx.bezierCurveTo(267 * scale, 219 * scale, 204 * scale, 222 * scale, 155 * scale, 212 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 4 * scale); //#211a22 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(239 * scale, 59 * scale); ctx.bezierCurveTo(302 * scale, 72 * scale, 325 * scale, 84 * scale, 326 * scale, 115 * scale); ctx.bezierCurveTo(289 * scale, 80 * scale, 270 * scale, 88 * scale, 253 * scale, 78 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#403041 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(216 * scale, 61 * scale); ctx.bezierCurveTo(209 * scale, 70 * scale, 209 * scale, 70 * scale, 202 * scale, 79 * scale); ctx.bezierCurveTo(173 * scale, 87 * scale, 162 * scale, 91 * scale, 137 * scale, 107 * scale); ctx.bezierCurveTo(153 * scale, 78 * scale, 174 * scale, 67 * scale, 212 * scale, 62 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#403041 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(175 * scale, 125 * scale); ctx.bezierCurveTo(218 * scale, 94 * scale, 238 * scale, 90 * scale, 281 * scale, 125 * scale); ctx.bezierCurveTo(245 * scale, 89 * scale, 240 * scale, 80 * scale, 228 * scale, 67 * scale); ctx.bezierCurveTo(207 * scale, 100 * scale, 192 * scale, 104 * scale, 177 * scale, 123 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#403041 return can; } function create_winter_hood(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 465 * scale; can.height = 405 * scale; ctx.globalAlpha = 1; ctx.translate(6 * scale, 0 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(39.000030517578125 * scale, 162.03977966308594 * scale); ctx.bezierCurveTo(125.00003051757812 * scale, 84.03977966308594 * scale, 108.50003051757812 * scale, 115.03977966308594 * scale, 178.00003051757812 * scale, 68.03977966308594 * scale); ctx.bezierCurveTo(299.0000305175781 * scale, 146.53977966308594 * scale, 299.0000305175781 * scale, 146.53977966308594 * scale, 420.0000305175781 * scale, 225.03977966308594 * scale); ctx.bezierCurveTo(400.0000305175781 * scale, 288.53977966308594 * scale, 400.0000305175781 * scale, 288.53977966308594 * scale, 380.0000305175781 * scale, 352.03977966308594 * scale); ctx.bezierCurveTo(216.50003051757812 * scale, 345.53977966308594 * scale, 216.50003051757812 * scale, 345.53977966308594 * scale, 53.000030517578125 * scale, 339.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#5f8c1b #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(23.000030517578125 * scale, 306.94886779785156 * scale); ctx.bezierCurveTo(5.000030517578125 * scale, 275.94886779785156 * scale, 6.000030517578125 * scale, 201.94886779785156 * scale, 14.000030517578125 * scale, 150.94886779785156 * scale); ctx.bezierCurveTo(40.000030517578125 * scale, 34.94886779785156 * scale, 157.00003051757812 * scale, 14.948867797851562 * scale, 199.00003051757812 * scale, 11.948867797851562 * scale); ctx.bezierCurveTo(331.0000305175781 * scale, 0.9488677978515625 * scale, 409.0000305175781 * scale, 61.94886779785156 * scale, 428.0000305175781 * scale, 133.94886779785156 * scale); ctx.bezierCurveTo(445.0000305175781 * scale, 207.94886779785156 * scale, 439.0000305175781 * scale, 274.94886779785156 * scale, 426.0000305175781 * scale, 342.94886779785156 * scale); ctx.bezierCurveTo(355.0000305175781 * scale, 207.94886779785156 * scale, 345.0000305175781 * scale, 208.94886779785156 * scale, 333.0000305175781 * scale, 202.94886779785156 * scale); ctx.bezierCurveTo(262.0000305175781 * scale, 143.94886779785156 * scale, 236.00003051757812 * scale, 148.94886779785156 * scale, 189.00003051757812 * scale, 162.94886779785156 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 190.94886779785156 * scale, 78.00003051757812 * scale, 235.94886779785156 * scale, 62.000030517578125 * scale, 279.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 20 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(17.000030517578125 * scale, 149.94886779785156 * scale); ctx.bezierCurveTo(76.00003051757812 * scale, 67.94886779785156 * scale, 177.00003051757812 * scale, 40.94886779785156 * scale, 232.00003051757812 * scale, 45.94886779785156 * scale); ctx.bezierCurveTo(316.0000305175781 * scale, 46.94886779785156 * scale, 359.0000305175781 * scale, 74.94886779785156 * scale, 428.0000305175781 * scale, 145.94886779785156 * scale); ctx.bezierCurveTo(414.0000305175781 * scale, 73.94886779785156 * scale, 386.0000305175781 * scale, 68.94886779785156 * scale, 359.0000305175781 * scale, 43.94886779785156 * scale); ctx.bezierCurveTo(295.0000305175781 * scale, 5.9488677978515625 * scale, 239.00003051757812 * scale, 10.948867797851562 * scale, 207.00003051757812 * scale, 10.948867797851562 * scale); ctx.bezierCurveTo(121.00003051757812 * scale, 20.948867797851562 * scale, 104.00003051757812 * scale, 34.94886779785156 * scale, 45.000030517578125 * scale, 84.94886779785156 * scale); ctx.bezierCurveTo(14.000030517578125 * scale, 128.94886779785156 * scale, 18.000030517578125 * scale, 142.94886779785156 * scale, 16.000030517578125 * scale, 151.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#5f8c1b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(23.000030517578125 * scale, 306.94886779785156 * scale); ctx.bezierCurveTo(5.000030517578125 * scale, 275.94886779785156 * scale, 6.000030517578125 * scale, 201.94886779785156 * scale, 14.000030517578125 * scale, 150.94886779785156 * scale); ctx.bezierCurveTo(40.000030517578125 * scale, 34.94886779785156 * scale, 157.00003051757812 * scale, 14.948867797851562 * scale, 199.00003051757812 * scale, 11.948867797851562 * scale); ctx.bezierCurveTo(331.0000305175781 * scale, 0.9488677978515625 * scale, 409.0000305175781 * scale, 61.94886779785156 * scale, 428.0000305175781 * scale, 133.94886779785156 * scale); ctx.bezierCurveTo(445.0000305175781 * scale, 207.94886779785156 * scale, 439.0000305175781 * scale, 274.94886779785156 * scale, 426.0000305175781 * scale, 342.94886779785156 * scale); ctx.bezierCurveTo(355.0000305175781 * scale, 207.94886779785156 * scale, 345.0000305175781 * scale, 208.94886779785156 * scale, 333.0000305175781 * scale, 202.94886779785156 * scale); ctx.bezierCurveTo(262.0000305175781 * scale, 143.94886779785156 * scale, 236.00003051757812 * scale, 148.94886779785156 * scale, 189.00003051757812 * scale, 162.94886779785156 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 190.94886779785156 * scale, 78.00003051757812 * scale, 235.94886779785156 * scale, 62.000030517578125 * scale, 279.94886779785156 * scale); ctx.closePath(); fill_path(ctx, undefined, color[1], 16 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60.000030517578125 * scale, 288.03977966308594 * scale); ctx.bezierCurveTo(183.00003051757812 * scale, 320.03977966308594 * scale, 342.0000305175781 * scale, 306.03977966308594 * scale, 399.0000305175781 * scale, 286.03977966308594 * scale); ctx.bezierCurveTo(420.0000305175781 * scale, 345.03977966308594 * scale, 410.0000305175781 * scale, 335.03977966308594 * scale, 415.0000305175781 * scale, 362.03977966308594 * scale); ctx.bezierCurveTo(351.0000305175781 * scale, 384.03977966308594 * scale, 299.0000305175781 * scale, 389.03977966308594 * scale, 215.00003051757812 * scale, 391.03977966308594 * scale); ctx.bezierCurveTo(128.00003051757812 * scale, 388.03977966308594 * scale, 69.00003051757812 * scale, 373.03977966308594 * scale, 39.000030517578125 * scale, 359.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 13 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(47.000030517578125 * scale, 327.03977966308594 * scale); ctx.bezierCurveTo(203.00003051757812 * scale, 377.03977966308594 * scale, 331.0000305175781 * scale, 349.03977966308594 * scale, 410.0000305175781 * scale, 330.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 20 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(9.000030517578125 * scale, 339.1306915283203 * scale); ctx.bezierCurveTo(2.000030517578125 * scale, 280.1306915283203 * scale, 30.000030517578125 * scale, 219.1306915283203 * scale, 85.00003051757812 * scale, 167.1306915283203 * scale); ctx.bezierCurveTo(174.00003051757812 * scale, 82.13069152832031 * scale, 241.00003051757812 * scale, 101.13069152832031 * scale, 284.0000305175781 * scale, 115.13069152832031 * scale); ctx.bezierCurveTo(333.0000305175781 * scale, 134.1306915283203 * scale, 376.0000305175781 * scale, 177.1306915283203 * scale, 410.0000305175781 * scale, 247.1306915283203 * scale); ctx.bezierCurveTo(439.0000305175781 * scale, 300.1306915283203 * scale, 442.0000305175781 * scale, 346.1306915283203 * scale, 430.0000305175781 * scale, 363.1306915283203 * scale); ctx.bezierCurveTo(418.0000305175781 * scale, 366.1306915283203 * scale, 395.0000305175781 * scale, 295.1306915283203 * scale, 355.0000305175781 * scale, 223.1306915283203 * scale); ctx.bezierCurveTo(299.0000305175781 * scale, 156.1306915283203 * scale, 262.0000305175781 * scale, 155.1306915283203 * scale, 215.00003051757812 * scale, 159.1306915283203 * scale); ctx.bezierCurveTo(133.00003051757812 * scale, 171.1306915283203 * scale, 120.00003051757812 * scale, 193.1306915283203 * scale, 96.00003051757812 * scale, 221.1306915283203 * scale); ctx.bezierCurveTo(49.000030517578125 * scale, 262.1306915283203 * scale, 47.000030517578125 * scale, 306.1306915283203 * scale, 38.000030517578125 * scale, 336.1306915283203 * scale); ctx.bezierCurveTo(30.000030517578125 * scale, 349.1306915283203 * scale, 30.000030517578125 * scale, 349.1306915283203 * scale, 22.000030517578125 * scale, 362.1306915283203 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 20 * scale); //#5f8c1b #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(228.00003051757812 * scale, 128.03977966308594 * scale); ctx.bezierCurveTo(315.0000305175781 * scale, 131.03977966308594 * scale, 349.0000305175781 * scale, 178.03977966308594 * scale, 386.0000305175781 * scale, 234.03977966308594 * scale); ctx.bezierCurveTo(444.0000305175781 * scale, 329.03977966308594 * scale, 446.0000305175781 * scale, 354.03977966308594 * scale, 427.0000305175781 * scale, 373.03977966308594 * scale); ctx.bezierCurveTo(389.0000305175781 * scale, 389.03977966308594 * scale, 399.0000305175781 * scale, 329.03977966308594 * scale, 361.0000305175781 * scale, 277.03977966308594 * scale); ctx.bezierCurveTo(306.0000305175781 * scale, 191.03977966308594 * scale, 266.0000305175781 * scale, 183.03977966308594 * scale, 220.00003051757812 * scale, 181.03977966308594 * scale); ctx.bezierCurveTo(138.00003051757812 * scale, 184.03977966308594 * scale, 123.00003051757812 * scale, 212.03977966308594 * scale, 89.00003051757812 * scale, 271.03977966308594 * scale); ctx.bezierCurveTo(52.000030517578125 * scale, 349.03977966308594 * scale, 68.00003051757812 * scale, 364.03977966308594 * scale, 33.000030517578125 * scale, 369.03977966308594 * scale); ctx.bezierCurveTo(6.000030517578125 * scale, 366.03977966308594 * scale, 5.000030517578125 * scale, 341.03977966308594 * scale, 26.000030517578125 * scale, 288.03977966308594 * scale); ctx.bezierCurveTo(60.000030517578125 * scale, 207.03977966308594 * scale, 100.00003051757812 * scale, 180.03977966308594 * scale, 113.00003051757812 * scale, 170.03977966308594 * scale); ctx.bezierCurveTo(159.00003051757812 * scale, 132.03977966308594 * scale, 196.00003051757812 * scale, 133.03977966308594 * scale, 226.00003051757812 * scale, 129.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 20 * scale); //#9e793d #5f461f /* circle (ctx, 161 * scale, 260.5999984741211 * scale, 16.401219466856727 * scale); fill_path (ctx, color[4]); //#9e793d circle (ctx, 298 * scale, 259.5999984741211 * scale, 16.64331697709324 * scale); fill_path (ctx, color[4]); //#9e793d */ return can; } function create_peasant(scale, draw_shadow, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 198 * scale; can.height = 147 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 6 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(44 * scale, 76 * scale); ctx.bezierCurveTo(50 * scale, 82 * scale, 50 * scale, 82 * scale, 56 * scale, 88 * scale); ctx.bezierCurveTo(59 * scale, 82 * scale, 59 * scale, 82 * scale, 62 * scale, 76 * scale); ctx.bezierCurveTo(59 * scale, 71 * scale, 59 * scale, 71 * scale, 56 * scale, 66 * scale); ctx.bezierCurveTo(59 * scale, 69 * scale, 59 * scale, 69 * scale, 62 * scale, 72 * scale); ctx.bezierCurveTo(80 * scale, 48 * scale, 102 * scale, 50 * scale, 120 * scale, 62 * scale); ctx.bezierCurveTo(127 * scale, 58 * scale, 127 * scale, 58 * scale, 134 * scale, 54 * scale); ctx.bezierCurveTo(129 * scale, 60 * scale, 129 * scale, 60 * scale, 124 * scale, 66 * scale); ctx.bezierCurveTo(129 * scale, 73 * scale, 129 * scale, 73 * scale, 134 * scale, 80 * scale); ctx.bezierCurveTo(140 * scale, 74 * scale, 140 * scale, 74 * scale, 146 * scale, 68 * scale); ctx.bezierCurveTo(142 * scale, 76 * scale, 142 * scale, 76 * scale, 138 * scale, 84 * scale); ctx.bezierCurveTo(144 * scale, 90 * scale, 142 * scale, 90 * scale, 144 * scale, 90 * scale); ctx.bezierCurveTo(136 * scale, 97 * scale, 136 * scale, 97 * scale, 128 * scale, 104 * scale); ctx.bezierCurveTo(154 * scale, 110 * scale, 164 * scale, 90 * scale, 160 * scale, 80 * scale); ctx.bezierCurveTo(138 * scale, 22 * scale, 148 * scale, 51 * scale, 136 * scale, 22 * scale); ctx.bezierCurveTo(97 * scale, 24 * scale, 97 * scale, 24 * scale, 58 * scale, 26 * scale); ctx.bezierCurveTo(47 * scale, 54 * scale, 36 * scale, 80 * scale, 36 * scale, 82 * scale); ctx.bezierCurveTo(40 * scale, 108 * scale, 54 * scale, 104 * scale, 62 * scale, 104 * scale); ctx.bezierCurveTo(46 * scale, 92 * scale, 54 * scale, 97 * scale, 46 * scale, 90 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 80 * scale); ctx.bezierCurveTo(30 * scale, 84 * scale, 28 * scale, 92 * scale, 34 * scale, 100 * scale); ctx.bezierCurveTo(41.5 * scale, 102 * scale, 41.5 * scale, 102 * scale, 49 * scale, 104 * scale); ctx.bezierCurveTo(43 * scale, 105.5 * scale, 43 * scale, 105.5 * scale, 37 * scale, 107 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 60 * scale, 114 * scale, 76 * scale, 114 * scale); ctx.bezierCurveTo(78 * scale, 110.5 * scale, 78 * scale, 110.5 * scale, 80 * scale, 107 * scale); ctx.bezierCurveTo(81 * scale, 110.5 * scale, 81 * scale, 110.5 * scale, 82 * scale, 114 * scale); ctx.bezierCurveTo(94.5 * scale, 113.5 * scale, 94.5 * scale, 113.5 * scale, 107 * scale, 113 * scale); ctx.bezierCurveTo(108.5 * scale, 110 * scale, 108.5 * scale, 110 * scale, 110 * scale, 107 * scale); ctx.bezierCurveTo(111.5 * scale, 110.5 * scale, 111.5 * scale, 110.5 * scale, 113 * scale, 114 * scale); ctx.bezierCurveTo(131 * scale, 112.5 * scale, 131 * scale, 112.5 * scale, 149 * scale, 111 * scale); ctx.bezierCurveTo(148.5 * scale, 107.5 * scale, 148.5 * scale, 107.5 * scale, 148 * scale, 104 * scale); ctx.bezierCurveTo(150.5 * scale, 107 * scale, 150.5 * scale, 107 * scale, 153 * scale, 110 * scale); ctx.bezierCurveTo(155.5 * scale, 108.5 * scale, 155.5 * scale, 108.5 * scale, 158 * scale, 107 * scale); ctx.bezierCurveTo(156.5 * scale, 104 * scale, 156.5 * scale, 104 * scale, 155 * scale, 101 * scale); ctx.bezierCurveTo(158.5 * scale, 102.5 * scale, 158.5 * scale, 102.5 * scale, 162 * scale, 104 * scale); ctx.bezierCurveTo(168 * scale, 100 * scale, 170 * scale, 92 * scale, 169 * scale, 85 * scale); ctx.bezierCurveTo(166 * scale, 86 * scale, 166 * scale, 86 * scale, 163 * scale, 87 * scale); ctx.bezierCurveTo(165.5 * scale, 83 * scale, 165.5 * scale, 83 * scale, 168 * scale, 79 * scale); ctx.bezierCurveTo(165.5 * scale, 76.5 * scale, 165.5 * scale, 76.5 * scale, 163 * scale, 74 * scale); ctx.bezierCurveTo(155 * scale, 82.5 * scale, 155 * scale, 82.5 * scale, 147 * scale, 91 * scale); ctx.bezierCurveTo(139 * scale, 95.5 * scale, 139 * scale, 95.5 * scale, 131 * scale, 100 * scale); ctx.bezierCurveTo(97.5 * scale, 100.5 * scale, 97.5 * scale, 100.5 * scale, 64 * scale, 101 * scale); ctx.bezierCurveTo(49 * scale, 102 * scale, 43 * scale, 90 * scale, 36 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -6 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36 * scale, 80 * scale); ctx.bezierCurveTo(30 * scale, 84 * scale, 28 * scale, 92 * scale, 34 * scale, 100 * scale); ctx.bezierCurveTo(41.5 * scale, 102 * scale, 41.5 * scale, 102 * scale, 49 * scale, 104 * scale); ctx.bezierCurveTo(43 * scale, 105.5 * scale, 43 * scale, 105.5 * scale, 37 * scale, 107 * scale); ctx.bezierCurveTo(46 * scale, 111 * scale, 60 * scale, 114 * scale, 76 * scale, 114 * scale); ctx.bezierCurveTo(78 * scale, 110.5 * scale, 78 * scale, 110.5 * scale, 80 * scale, 107 * scale); ctx.bezierCurveTo(81 * scale, 110.5 * scale, 81 * scale, 110.5 * scale, 82 * scale, 114 * scale); ctx.bezierCurveTo(94.5 * scale, 113.5 * scale, 94.5 * scale, 113.5 * scale, 107 * scale, 113 * scale); ctx.bezierCurveTo(108.5 * scale, 110 * scale, 108.5 * scale, 110 * scale, 110 * scale, 107 * scale); ctx.bezierCurveTo(111.5 * scale, 110.5 * scale, 111.5 * scale, 110.5 * scale, 113 * scale, 114 * scale); ctx.bezierCurveTo(131 * scale, 112.5 * scale, 131 * scale, 112.5 * scale, 149 * scale, 111 * scale); ctx.bezierCurveTo(148.5 * scale, 107.5 * scale, 148.5 * scale, 107.5 * scale, 148 * scale, 104 * scale); ctx.bezierCurveTo(150.5 * scale, 107 * scale, 150.5 * scale, 107 * scale, 153 * scale, 110 * scale); ctx.bezierCurveTo(155.5 * scale, 108.5 * scale, 155.5 * scale, 108.5 * scale, 158 * scale, 107 * scale); ctx.bezierCurveTo(156.5 * scale, 104 * scale, 156.5 * scale, 104 * scale, 155 * scale, 101 * scale); ctx.bezierCurveTo(158.5 * scale, 102.5 * scale, 158.5 * scale, 102.5 * scale, 162 * scale, 104 * scale); ctx.bezierCurveTo(168 * scale, 100 * scale, 170 * scale, 92 * scale, 169 * scale, 85 * scale); ctx.bezierCurveTo(166 * scale, 86 * scale, 166 * scale, 86 * scale, 163 * scale, 87 * scale); ctx.bezierCurveTo(165.5 * scale, 83 * scale, 165.5 * scale, 83 * scale, 168 * scale, 79 * scale); ctx.bezierCurveTo(165.5 * scale, 76.5 * scale, 165.5 * scale, 76.5 * scale, 163 * scale, 74 * scale); ctx.bezierCurveTo(155 * scale, 82.5 * scale, 155 * scale, 82.5 * scale, 147 * scale, 91 * scale); ctx.bezierCurveTo(139 * scale, 95.5 * scale, 139 * scale, 95.5 * scale, 131 * scale, 100 * scale); ctx.bezierCurveTo(97.5 * scale, 100.5 * scale, 97.5 * scale, 100.5 * scale, 64 * scale, 101 * scale); ctx.bezierCurveTo(49 * scale, 102 * scale, 43 * scale, 90 * scale, 36 * scale, 80 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(49 * scale, 98 * scale); ctx.bezierCurveTo(96.5 * scale, 98 * scale, 96.5 * scale, 98 * scale, 144 * scale, 98 * scale); ctx.bezierCurveTo(136.5 * scale, 102 * scale, 136.5 * scale, 102 * scale, 129 * scale, 106 * scale); ctx.bezierCurveTo(103 * scale, 105.5 * scale, 103 * scale, 105.5 * scale, 77 * scale, 105 * scale); ctx.bezierCurveTo(65 * scale, 105 * scale, 65 * scale, 105 * scale, 53 * scale, 105 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#9e793d #dfaece ctx.globalAlpha = 0.5; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54 * scale, 98 * scale); ctx.bezierCurveTo(97 * scale, 98 * scale, 97 * scale, 98 * scale, 140 * scale, 98 * scale); ctx.bezierCurveTo(134 * scale, 101 * scale, 134 * scale, 101 * scale, 128 * scale, 104 * scale); ctx.bezierCurveTo(92 * scale, 104 * scale, 92 * scale, 104 * scale, 56 * scale, 104 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(118 * scale, 47 * scale); ctx.bezierCurveTo(124.5 * scale, 43.5 * scale, 124.5 * scale, 43.5 * scale, 131 * scale, 40 * scale); ctx.bezierCurveTo(128 * scale, 46 * scale, 128 * scale, 46 * scale, 125 * scale, 52 * scale); ctx.bezierCurveTo(131 * scale, 57 * scale, 135 * scale, 64 * scale, 139 * scale, 73 * scale); ctx.bezierCurveTo(142.5 * scale, 69.5 * scale, 142.5 * scale, 69.5 * scale, 146 * scale, 66 * scale); ctx.bezierCurveTo(143.5 * scale, 72.5 * scale, 143.5 * scale, 72.5 * scale, 141 * scale, 79 * scale); ctx.bezierCurveTo(142 * scale, 91 * scale, 141 * scale, 94 * scale, 132 * scale, 98 * scale); ctx.bezierCurveTo(117 * scale, 102 * scale, 126 * scale, 108 * scale, 142 * scale, 102 * scale); ctx.bezierCurveTo(159 * scale, 98 * scale, 164 * scale, 80 * scale, 162 * scale, 47 * scale); ctx.bezierCurveTo(160 * scale, 19 * scale, 150 * scale, 6 * scale, 117 * scale, 4 * scale); ctx.bezierCurveTo(44 * scale, 0 * scale, 35 * scale, 20 * scale, 33 * scale, 37 * scale); ctx.bezierCurveTo(29 * scale, 69 * scale, 33 * scale, 88 * scale, 44 * scale, 96 * scale); ctx.bezierCurveTo(64 * scale, 107 * scale, 70 * scale, 102 * scale, 54 * scale, 93 * scale); ctx.bezierCurveTo(49 * scale, 88 * scale, 50 * scale, 82 * scale, 53 * scale, 77 * scale); ctx.bezierCurveTo(51.5 * scale, 71 * scale, 51.5 * scale, 71 * scale, 50 * scale, 65 * scale); ctx.bezierCurveTo(53 * scale, 68.5 * scale, 53 * scale, 68.5 * scale, 56 * scale, 72 * scale); ctx.bezierCurveTo(59 * scale, 67.5 * scale, 59 * scale, 67.5 * scale, 62 * scale, 63 * scale); ctx.bezierCurveTo(60.5 * scale, 59.5 * scale, 60.5 * scale, 59.5 * scale, 59 * scale, 56 * scale); ctx.bezierCurveTo(62 * scale, 57 * scale, 62 * scale, 57 * scale, 65 * scale, 58 * scale); ctx.bezierCurveTo(78 * scale, 35 * scale, 103 * scale, 36 * scale, 117 * scale, 47 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 6 * scale); //#9e793d #402b0b ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(62 * scale, 21 * scale); ctx.bezierCurveTo(63 * scale, 34 * scale, 64 * scale, 37 * scale, 66 * scale, 40 * scale); ctx.bezierCurveTo(54 * scale, 49 * scale, 53 * scale, 51 * scale, 48 * scale, 58 * scale); ctx.bezierCurveTo(44 * scale, 51 * scale, 42 * scale, 43 * scale, 40 * scale, 36 * scale); ctx.bezierCurveTo(47 * scale, 28 * scale, 52 * scale, 25 * scale, 61 * scale, 21 * scale); ctx.closePath(); fill_path(ctx, color[4]); //#b5f33e #7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(60 * scale, 29 * scale); ctx.bezierCurveTo(62 * scale, 25 * scale, 65 * scale, 24 * scale, 70 * scale, 23 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(61 * scale, 37 * scale); ctx.bezierCurveTo(63 * scale, 32 * scale, 66 * scale, 32 * scale, 71 * scale, 32 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(52 * scale, 31 * scale); ctx.bezierCurveTo(50 * scale, 26 * scale, 50 * scale, 25 * scale, 51 * scale, 23 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46 * scale, 35 * scale); ctx.bezierCurveTo(44 * scale, 31 * scale, 43 * scale, 29 * scale, 45 * scale, 26 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58 * scale, 44 * scale); ctx.bezierCurveTo(57 * scale, 48 * scale, 57 * scale, 50 * scale, 60 * scale, 52 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(53 * scale, 48 * scale); ctx.bezierCurveTo(52 * scale, 52 * scale, 52 * scale, 54 * scale, 55 * scale, 57 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(46 * scale, 41 * scale); ctx.bezierCurveTo(41 * scale, 42 * scale, 39 * scale, 45 * scale, 38 * scale, 48 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(48 * scale, 48 * scale); ctx.bezierCurveTo(42 * scale, 51 * scale, 42 * scale, 53 * scale, 40 * scale, 55 * scale); fill_path(ctx, undefined, color[3], 4 * scale); //#7691ec if (i == 0) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(99 * scale, 101 * scale); ctx.bezierCurveTo(118.6666259765625 * scale, 104.33331298828125 * scale, 124.6666259765625 * scale, 116.33331298828125 * scale, 112.6666259765625 * scale, 114.33331298828125 * scale); ctx.bezierCurveTo(104.6666259765625 * scale, 112.33331298828125 * scale, 100.6666259765625 * scale, 105.33331298828125 * scale, 99.6666259765625 * scale, 101.33331298828125 * scale); fill_path(ctx, undefined, color[5], 6 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(97.6666259765625 * scale, 101.33331298828125 * scale); ctx.bezierCurveTo(81.6666259765625 * scale, 106.33331298828125 * scale, 79.6666259765625 * scale, 114.33331298828125 * scale, 89.6666259765625 * scale, 114.33331298828125 * scale); ctx.bezierCurveTo(95.6666259765625 * scale, 111.33331298828125 * scale, 95.6666259765625 * scale, 109.33331298828125 * scale, 98.6666259765625 * scale, 102.33331298828125 * scale); fill_path(ctx, undefined, color[5], 6 * scale); //#9e793d #5f461f } else { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103 * scale, 100.39999389648438 * scale); ctx.bezierCurveTo(120 * scale, 106.39999389648438 * scale, 118 * scale, 107.39999389648438 * scale, 120 * scale, 111.39999389648438 * scale); fill_path(ctx, undefined, color[5], 6 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103 * scale, 100.39999389648438 * scale); ctx.bezierCurveTo(90 * scale, 103.39999389648438 * scale, 89 * scale, 106.39999389648438 * scale, 87 * scale, 112.39999389648438 * scale); fill_path(ctx, undefined, color[5], 6 * scale); //#9e793d #5f461f circle(ctx, 86 * scale, 114.39999389648438 * scale, 4.5 * scale); fill_path(ctx, color[1], color[5], 6 * scale); //#9e793d #5f461f circle(ctx, 121 * scale, 114.39999389648438 * scale, 4.5 * scale); fill_path(ctx, color[1], color[5], 6 * scale); //#9e793d #5f461f } return can; } function create_treasure_chest(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 253 * scale; can.height = 192 * scale; ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(42 * scale, 99 * scale); ctx.globalAlpha = 0.5; round_rect(ctx, -7 * scale, -20 * scale, 14 * scale, 39 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d #ca461f ctx.globalAlpha = 1; ctx.save(); ctx.translate(37 * scale, 94 * scale); round_rect(ctx, -7 * scale, -20 * scale, 14 * scale, 37 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[2]); //#9eb83d #ca461f ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(136 * scale, 99 * scale); ctx.globalAlpha = 0.5; round_rect(ctx, -84 * scale, -67 * scale, 168 * scale, 134 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 13 * scale); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.save(); ctx.translate(131 * scale, 94 * scale); round_rect(ctx, -84 * scale, -67 * scale, 168 * scale, 134 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[2], color[2], 13 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(131 * scale, 94 * scale); round_rect(ctx, -76 * scale, -61 * scale, 152 * scale, 122 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[3], color[1], 8 * scale); //#9eb83d #ca461f ctx.save(); ctx.translate(168.5 * scale, 93.5 * scale); round_rect(ctx, -30.5 * scale, -58.5 * scale, 61 * scale, 117 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#9eb83d #ca461f ctx.save(); ctx.translate(93.5 * scale, 95.5 * scale); round_rect(ctx, -32 * scale, -59.5 * scale, 59 * scale, 119 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#9eb83d #ca461f ctx.save(); ctx.translate(130.5 * scale, 94 * scale); round_rect(ctx, -36 * scale, -67 * scale, 73 * scale, 134 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[3], color[2], 8 * scale); //#9eb83d #ca461f ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(133 * scale, 97 * scale); round_rect(ctx, -83 * scale, -12 * scale, 160 * scale, 24 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d ctx.globalAlpha = 1; ctx.save(); ctx.translate(133 * scale, 92 * scale); round_rect(ctx, -83 * scale, -12 * scale, 160 * scale, 24 * scale, 0 * scale); ctx.restore(); fill_path(ctx, color[2]); //#9eb83d ctx.globalAlpha = 0.5; ctx.save(); ctx.translate(228 * scale, 99.5 * scale); ctx.globalAlpha = 0.5; round_rect(ctx, -5 * scale, -18.5 * scale, 10 * scale, 37 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d #ca461f ctx.globalAlpha = 1; ctx.save(); ctx.translate(223 * scale, 94.5 * scale); round_rect(ctx, -5 * scale, -18.5 * scale, 10 * scale, 37 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[2]); //#9eb83d #ca461f ctx.save(); ctx.translate(133.5 * scale, 175.5 * scale); ctx.globalAlpha = 0.5; round_rect(ctx, -22.5 * scale, -6.5 * scale, 45 * scale, 13 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d ctx.globalAlpha = 1; ctx.save(); ctx.translate(128.5 * scale, 170.5 * scale); round_rect(ctx, -22.5 * scale, -6.5 * scale, 45 * scale, 13 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[2]); //#9eb83d return can; } function create_hurt_treasure_chest(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 253 * scale; can.height = 192 * scale; ctx.save(); ctx.translate(37 * scale, 94 * scale); round_rect(ctx, -7 * scale, -20 * scale, 14 * scale, 37 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d #ca461f ctx.save(); ctx.translate(131 * scale, 94 * scale); round_rect(ctx, -84 * scale, -67 * scale, 168 * scale, 134 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 13 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(223 * scale, 94.5 * scale); round_rect(ctx, -5 * scale, -18.5 * scale, 10 * scale, 37 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d #ca461f ctx.save(); ctx.translate(128.5 * scale, 170.5 * scale); round_rect(ctx, -22.5 * scale, -6.5 * scale, 45 * scale, 13 * scale, 20 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9eb83d return can; } function create_bottle(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 316 * scale; can.height = 365 * scale; ctx.save(); ctx.translate(156.07142639160156 * scale, 51.81248474121094 * scale); ctx.rotate(0); round_rect(ctx, -21.5 * scale, -34 * scale, 43 * scale, 68 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 15 * scale); //#e9ca54 #eb9837 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(110.57142639160156 * scale, 197.09820556640625 * scale); ctx.bezierCurveTo(158.07142639160156 * scale, 179.09820556640625 * scale, 158.07142639160156 * scale, 179.09820556640625 * scale, 205.57142639160156 * scale, 161.09820556640625 * scale); ctx.bezierCurveTo(205.57142639160156 * scale, 235.45535278320312 * scale, 205.57142639160156 * scale, 235.45535278320312 * scale, 205.57142639160156 * scale, 309.8125 * scale); ctx.bezierCurveTo(205.57142639160156 * scale, 323.8125 * scale, 200.57142639160156 * scale, 325.8125 * scale, 187.57142639160156 * scale, 326.8125 * scale); ctx.bezierCurveTo(155.57142639160156 * scale, 326.3125 * scale, 155.57142639160156 * scale, 326.3125 * scale, 123.57142639160156 * scale, 325.8125 * scale); ctx.bezierCurveTo(111.57142639160156 * scale, 326.8125 * scale, 109.57142639160156 * scale, 321.8125 * scale, 110.57142639160156 * scale, 312.8125 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 15 * scale); //#4783e3 #49b5e4 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126.57142639160156 * scale, 67.38392639160156 * scale); ctx.bezierCurveTo(126.57142639160156 * scale, 57.38392639160156 * scale, 132.57142639160156 * scale, 54.38392639160156 * scale, 140.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 55.38392639160156 * scale, 158.07142639160156 * scale, 54.38392639160156 * scale, 175.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(185.57142639160156 * scale, 56.38392639160156 * scale, 185.57142639160156 * scale, 57.38392639160156 * scale, 184.57142639160156 * scale, 66.38392639160156 * scale); ctx.bezierCurveTo(184.57142639160156 * scale, 78.38392639160156 * scale, 184.57142639160156 * scale, 89.38392639160156 * scale, 184.57142639160156 * scale, 90.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 107.38392639160156 * scale, 180.57142639160156 * scale, 112.38392639160156 * scale, 189.57142639160156 * scale, 116.38392639160156 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 127.38392639160156 * scale, 212.57142639160156 * scale, 132.38392639160156 * scale, 211.57142639160156 * scale, 150.38392639160156 * scale); ctx.bezierCurveTo(211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 304.81249618530273 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 328.81249618530273 * scale, 209.57142639160156 * scale, 330.81249618530273 * scale, 188.57142639160156 * scale, 333.81249618530273 * scale); ctx.bezierCurveTo(155.07142639160156 * scale, 333.31249618530273 * scale, 155.07142639160156 * scale, 333.31249618530273 * scale, 121.57142639160156 * scale, 332.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 327.81249618530273 * scale, 105.57142639160156 * scale, 328.81249618530273 * scale, 104.57142639160156 * scale, 312.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 143.52678298950195 * scale); ctx.bezierCurveTo(106.57142639160156 * scale, 124.52678298950195 * scale, 110.57142639160156 * scale, 123.52678298950195 * scale, 123.57142639160156 * scale, 116.52678298950195 * scale); ctx.bezierCurveTo(136.57142639160156 * scale, 110.52678298950195 * scale, 130.57142639160156 * scale, 106.52678298950195 * scale, 126.57142639160156 * scale, 98.52678298950195 * scale); ctx.closePath(); fill_path(ctx, undefined, color[5], 15 * scale); //#a7f7e5 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125.57142639160156 * scale, 156.66963958740234 * scale); ctx.bezierCurveTo(125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 208.66963958740234 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 15 * scale); //#a7f7e5 return can; } function create_bottle_full(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 316 * scale; can.height = 365 * scale; ctx.save(); ctx.translate(156.07142639160156 * scale, 51.81248474121094 * scale); ctx.rotate(0); round_rect(ctx, -21.5 * scale, -34 * scale, 43 * scale, 68 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 15 * scale); //#e9ca54 #eb9837 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126.57142639160156 * scale, 67.38392639160156 * scale); ctx.bezierCurveTo(126.57142639160156 * scale, 57.38392639160156 * scale, 132.57142639160156 * scale, 54.38392639160156 * scale, 140.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 55.38392639160156 * scale, 158.07142639160156 * scale, 54.38392639160156 * scale, 175.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(185.57142639160156 * scale, 56.38392639160156 * scale, 185.57142639160156 * scale, 57.38392639160156 * scale, 184.57142639160156 * scale, 66.38392639160156 * scale); ctx.bezierCurveTo(184.57142639160156 * scale, 78.38392639160156 * scale, 184.57142639160156 * scale, 89.38392639160156 * scale, 184.57142639160156 * scale, 90.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 107.38392639160156 * scale, 180.57142639160156 * scale, 112.38392639160156 * scale, 189.57142639160156 * scale, 116.38392639160156 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 127.38392639160156 * scale, 212.57142639160156 * scale, 132.38392639160156 * scale, 211.57142639160156 * scale, 150.38392639160156 * scale); ctx.bezierCurveTo(211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 304.81249618530273 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 328.81249618530273 * scale, 209.57142639160156 * scale, 330.81249618530273 * scale, 188.57142639160156 * scale, 333.81249618530273 * scale); ctx.bezierCurveTo(155.07142639160156 * scale, 333.31249618530273 * scale, 155.07142639160156 * scale, 333.31249618530273 * scale, 121.57142639160156 * scale, 332.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 327.81249618530273 * scale, 105.57142639160156 * scale, 328.81249618530273 * scale, 104.57142639160156 * scale, 312.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 143.52678298950195 * scale); ctx.bezierCurveTo(106.57142639160156 * scale, 124.52678298950195 * scale, 110.57142639160156 * scale, 123.52678298950195 * scale, 123.57142639160156 * scale, 116.52678298950195 * scale); ctx.bezierCurveTo(136.57142639160156 * scale, 110.52678298950195 * scale, 130.57142639160156 * scale, 106.52678298950195 * scale, 126.57142639160156 * scale, 98.52678298950195 * scale); ctx.closePath(); fill_path(ctx, undefined, color[5], 15 * scale); //#a7f7e5 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125.57142639160156 * scale, 156.66963958740234 * scale); ctx.bezierCurveTo(125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 208.66963958740234 * scale); ctx.closePath(); fill_path(ctx, undefined, color[6], 15 * scale); //#a7f7e5 return can; } function create_drink_delay(scale, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 316 * scale; can.height = 365 * scale; ctx.save(); ctx.translate(156.07142639160156 * scale, 51.81248474121094 * scale); ctx.rotate(0); round_rect(ctx, -21.5 * scale, -34 * scale, 43 * scale, 68 * scale, 8 * scale); ctx.restore(); fill_path(ctx, color[0], color[0], 15 * scale); //#e9ca54 #eb9837 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(126.57142639160156 * scale, 67.38392639160156 * scale); ctx.bezierCurveTo(126.57142639160156 * scale, 57.38392639160156 * scale, 132.57142639160156 * scale, 54.38392639160156 * scale, 140.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 55.38392639160156 * scale, 158.07142639160156 * scale, 54.38392639160156 * scale, 175.57142639160156 * scale, 54.38392639160156 * scale); ctx.bezierCurveTo(185.57142639160156 * scale, 56.38392639160156 * scale, 185.57142639160156 * scale, 57.38392639160156 * scale, 184.57142639160156 * scale, 66.38392639160156 * scale); ctx.bezierCurveTo(184.57142639160156 * scale, 78.38392639160156 * scale, 184.57142639160156 * scale, 89.38392639160156 * scale, 184.57142639160156 * scale, 90.38392639160156 * scale); ctx.bezierCurveTo(177.57142639160156 * scale, 107.38392639160156 * scale, 180.57142639160156 * scale, 112.38392639160156 * scale, 189.57142639160156 * scale, 116.38392639160156 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 127.38392639160156 * scale, 212.57142639160156 * scale, 132.38392639160156 * scale, 211.57142639160156 * scale, 150.38392639160156 * scale); ctx.bezierCurveTo(211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 227.59821128845215 * scale, 211.57142639160156 * scale, 304.81249618530273 * scale); ctx.bezierCurveTo(212.57142639160156 * scale, 328.81249618530273 * scale, 209.57142639160156 * scale, 330.81249618530273 * scale, 188.57142639160156 * scale, 333.81249618530273 * scale); ctx.bezierCurveTo(155.07142639160156 * scale, 333.31249618530273 * scale, 155.07142639160156 * scale, 333.31249618530273 * scale, 121.57142639160156 * scale, 332.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 327.81249618530273 * scale, 105.57142639160156 * scale, 328.81249618530273 * scale, 104.57142639160156 * scale, 312.81249618530273 * scale); ctx.bezierCurveTo(104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 228.16963958740234 * scale, 104.57142639160156 * scale, 143.52678298950195 * scale); ctx.bezierCurveTo(106.57142639160156 * scale, 124.52678298950195 * scale, 110.57142639160156 * scale, 123.52678298950195 * scale, 123.57142639160156 * scale, 116.52678298950195 * scale); ctx.bezierCurveTo(136.57142639160156 * scale, 110.52678298950195 * scale, 130.57142639160156 * scale, 106.52678298950195 * scale, 126.57142639160156 * scale, 98.52678298950195 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 15 * scale); //#a7f7e5 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(125.57142639160156 * scale, 156.66963958740234 * scale); ctx.bezierCurveTo(125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 182.66963958740234 * scale, 125.57142639160156 * scale, 208.66963958740234 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 15 * scale); //#a7f7e5 return can; } function create_bucket_empty(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.translate(0, 15 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(108 * scale, 216.5 * scale, 108 * scale, 216.5 * scale, 114 * scale, 279 * scale); ctx.bezierCurveTo(124 * scale, 300 * scale, 237 * scale, 299 * scale, 251 * scale, 279 * scale); ctx.bezierCurveTo(257 * scale, 217 * scale, 257 * scale, 217 * scale, 263 * scale, 155 * scale); ctx.bezierCurveTo(248 * scale, 194 * scale, 91 * scale, 180 * scale, 103 * scale, 156 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(106 * scale, 53 * scale, 255 * scale, 53 * scale, 263 * scale, 154 * scale); ctx.bezierCurveTo(248 * scale, 38 * scale, 99 * scale, 69 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 11 * scale); //#5a351f ctx.translate(0, -5 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103 * scale, 154 * scale); ctx.bezierCurveTo(98 * scale, 119 * scale, 264 * scale, 119 * scale, 264 * scale, 154 * scale); ctx.bezierCurveTo(271 * scale, 189 * scale, 94 * scale, 188 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#3d2618 #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(108 * scale, 216.5 * scale, 108 * scale, 216.5 * scale, 114 * scale, 279 * scale); ctx.bezierCurveTo(124 * scale, 300 * scale, 237 * scale, 299 * scale, 251 * scale, 279 * scale); ctx.bezierCurveTo(257 * scale, 217 * scale, 257 * scale, 217 * scale, 263 * scale, 155 * scale); ctx.bezierCurveTo(248 * scale, 194 * scale, 91 * scale, 180 * scale, 103 * scale, 156 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(182 * scale, 185 * scale); ctx.bezierCurveTo(182.5 * scale, 237.5 * scale, 182.5 * scale, 237.5 * scale, 183 * scale, 290 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(222 * scale, 287 * scale); ctx.bezierCurveTo(226 * scale, 233.5 * scale, 226 * scale, 233.5 * scale, 230 * scale, 180 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 290 * scale); ctx.bezierCurveTo(140.5 * scale, 237 * scale, 140.5 * scale, 237 * scale, 136 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 184 * scale); ctx.bezierCurveTo(148 * scale, 205 * scale, 231 * scale, 202 * scale, 260 * scale, 182 * scale); ctx.bezierCurveTo(259 * scale, 195.5 * scale, 259 * scale, 195.5 * scale, 258 * scale, 209 * scale); ctx.bezierCurveTo(217 * scale, 218 * scale, 163 * scale, 225 * scale, 108 * scale, 207 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(251 * scale, 276 * scale); ctx.bezierCurveTo(251.5 * scale, 267.5 * scale, 251.5 * scale, 267.5 * scale, 252 * scale, 259 * scale); ctx.bezierCurveTo(212 * scale, 272 * scale, 156 * scale, 275 * scale, 112 * scale, 260 * scale); ctx.bezierCurveTo(112.5 * scale, 269 * scale, 112.5 * scale, 269 * scale, 113 * scale, 278 * scale); ctx.bezierCurveTo(155 * scale, 306 * scale, 253 * scale, 286 * scale, 250 * scale, 276 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(106 * scale, 53 * scale, 255 * scale, 53 * scale, 263 * scale, 154 * scale); ctx.bezierCurveTo(248 * scale, 38 * scale, 99 * scale, 69 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 11 * scale); //#5a351f return can; } function create_bucket_full(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 400 * scale; can.height = 400 * scale; ctx.translate(0, 15 * scale); ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(108 * scale, 216.5 * scale, 108 * scale, 216.5 * scale, 114 * scale, 279 * scale); ctx.bezierCurveTo(124 * scale, 300 * scale, 237 * scale, 299 * scale, 251 * scale, 279 * scale); ctx.bezierCurveTo(257 * scale, 217 * scale, 257 * scale, 217 * scale, 263 * scale, 155 * scale); ctx.bezierCurveTo(248 * scale, 194 * scale, 91 * scale, 180 * scale, 103 * scale, 156 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(106 * scale, 53 * scale, 255 * scale, 53 * scale, 263 * scale, 154 * scale); ctx.bezierCurveTo(248 * scale, 38 * scale, 99 * scale, 69 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, undefined, color[0], 11 * scale); //#5a351f ctx.translate(0, -5 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103 * scale, 154 * scale); ctx.bezierCurveTo(98 * scale, 119 * scale, 264 * scale, 119 * scale, 264 * scale, 154 * scale); ctx.bezierCurveTo(271 * scale, 189 * scale, 94 * scale, 188 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 12 * scale); //#3d2618 #5a351f ctx.translate(0, 25 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103 * scale, 154 * scale); ctx.bezierCurveTo(98 * scale, 119 * scale, 264 * scale, 119 * scale, 264 * scale, 154 * scale); ctx.bezierCurveTo(271 * scale, 189 * scale, 94 * scale, 188 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#3d2618 #5a351f ctx.translate(0, -25 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(108 * scale, 216.5 * scale, 108 * scale, 216.5 * scale, 114 * scale, 279 * scale); ctx.bezierCurveTo(124 * scale, 300 * scale, 237 * scale, 299 * scale, 251 * scale, 279 * scale); ctx.bezierCurveTo(257 * scale, 217 * scale, 257 * scale, 217 * scale, 263 * scale, 155 * scale); ctx.bezierCurveTo(248 * scale, 194 * scale, 91 * scale, 180 * scale, 103 * scale, 156 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 12 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(182 * scale, 185 * scale); ctx.bezierCurveTo(182.5 * scale, 237.5 * scale, 182.5 * scale, 237.5 * scale, 183 * scale, 290 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(222 * scale, 287 * scale); ctx.bezierCurveTo(226 * scale, 233.5 * scale, 226 * scale, 233.5 * scale, 230 * scale, 180 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 12 * scale); //#5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(145 * scale, 290 * scale); ctx.bezierCurveTo(140.5 * scale, 237 * scale, 140.5 * scale, 237 * scale, 136 * scale, 184 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105 * scale, 184 * scale); ctx.bezierCurveTo(148 * scale, 205 * scale, 231 * scale, 202 * scale, 260 * scale, 182 * scale); ctx.bezierCurveTo(259 * scale, 195.5 * scale, 259 * scale, 195.5 * scale, 258 * scale, 209 * scale); ctx.bezierCurveTo(217 * scale, 218 * scale, 163 * scale, 225 * scale, 108 * scale, 207 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(251 * scale, 276 * scale); ctx.bezierCurveTo(251.5 * scale, 267.5 * scale, 251.5 * scale, 267.5 * scale, 252 * scale, 259 * scale); ctx.bezierCurveTo(212 * scale, 272 * scale, 156 * scale, 275 * scale, 112 * scale, 260 * scale); ctx.bezierCurveTo(112.5 * scale, 269 * scale, 112.5 * scale, 269 * scale, 113 * scale, 278 * scale); ctx.bezierCurveTo(155 * scale, 306 * scale, 253 * scale, 286 * scale, 250 * scale, 276 * scale); ctx.closePath(); fill_path(ctx, color[4], color[2], 11 * scale); //#6f452d #5a351f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(102 * scale, 154 * scale); ctx.bezierCurveTo(106 * scale, 53 * scale, 255 * scale, 53 * scale, 263 * scale, 154 * scale); ctx.bezierCurveTo(248 * scale, 38 * scale, 99 * scale, 69 * scale, 103 * scale, 154 * scale); ctx.closePath(); fill_path(ctx, undefined, color[2], 11 * scale); //#5a351f return can; } function create_shovel(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 80 * scale; can.height = 160 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.save(); round_rect(ctx, 33 * scale, 53 * scale, 10 * scale, 98 * scale, 10 * scale); fill_path(ctx, color[0]); //#6d5041 #4f3d35 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-150 * scale, -100 * scale); ctx.moveTo(167.5 * scale, 171.0625 * scale); ctx.bezierCurveTo(188 * scale, 171.0625 * scale, 188 * scale, 171.0625 * scale, 208.5 * scale, 171.0625 * scale); ctx.bezierCurveTo(208.5 * scale, 156.0625 * scale, 208.5 * scale, 156.0625 * scale, 208.5 * scale, 141.0625 * scale); ctx.bezierCurveTo(203.5 * scale, 113.0625 * scale, 179.5 * scale, 96.0625 * scale, 167.5 * scale, 141.0625 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#8b8b8b #4d4d4d ctx.restore(); ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.save(); round_rect(ctx, 33 * scale, 53 * scale, 10 * scale, 98 * scale, 10 * scale); fill_path(ctx, color[1], color[2], 4 * scale); //#6d5041 #4f3d35 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(-150 * scale, -100 * scale); ctx.moveTo(167.5 * scale, 171.0625 * scale); ctx.bezierCurveTo(188 * scale, 171.0625 * scale, 188 * scale, 171.0625 * scale, 208.5 * scale, 171.0625 * scale); ctx.bezierCurveTo(208.5 * scale, 156.0625 * scale, 208.5 * scale, 156.0625 * scale, 208.5 * scale, 141.0625 * scale); ctx.bezierCurveTo(203.5 * scale, 113.0625 * scale, 179.5 * scale, 96.0625 * scale, 167.5 * scale, 141.0625 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 4 * scale); //#8b8b8b #4d4d4d ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.translate(0 * scale, 1 * scale); ctx.moveTo(180.5 * scale, 169.0625 * scale); ctx.bezierCurveTo(180.5 * scale, 157.5625 * scale, 180.5 * scale, 157.5625 * scale, 180.5 * scale, 146.0625 * scale); ctx.bezierCurveTo(181.5 * scale, 134.0625 * scale, 193.5 * scale, 129.0625 * scale, 196.5 * scale, 146.0625 * scale); ctx.bezierCurveTo(196.5 * scale, 157.5625 * scale, 196.5 * scale, 157.5625 * scale, 196.5 * scale, 169.0625 * scale); ctx.closePath(); fill_path(ctx, color[5]); //#757575 ctx.restore(); return can; } function create_symbol_hud(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 109 * scale; can.height = 110 * scale; circle(ctx, 54.5 * scale, 55 * scale, 48.038209575038294 * scale); fill_path(ctx, color[0], color[1], 8 * scale); //#000000 #000000 if (i == 0) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54.928558349609375 * scale, 43.72320556640625 * scale); ctx.bezierCurveTo(66.92855834960938 * scale, 31.72320556640625 * scale, 69.92855834960938 * scale, 29.72320556640625 * scale, 74.92855834960938 * scale, 29.72320556640625 * scale); ctx.bezierCurveTo(86.92855834960938 * scale, 28.72320556640625 * scale, 91.92855834960938 * scale, 42.72320556640625 * scale, 89.92855834960938 * scale, 52.72320556640625 * scale); ctx.bezierCurveTo(88.92855834960938 * scale, 63.72320556640625 * scale, 73.92855834960938 * scale, 75.72320556640625 * scale, 55.928558349609375 * scale, 87.72320556640625 * scale); ctx.bezierCurveTo(37.928558349609375 * scale, 78.72320556640625 * scale, 26.928558349609375 * scale, 65.72320556640625 * scale, 19.928558349609375 * scale, 54.72320556640625 * scale); ctx.bezierCurveTo(13.928558349609375 * scale, 42.72320556640625 * scale, 21.928558349609375 * scale, 28.72320556640625 * scale, 35.928558349609375 * scale, 29.72320556640625 * scale); ctx.bezierCurveTo(45.928558349609375 * scale, 31.72320556640625 * scale, 51.928558349609375 * scale, 40.72320556640625 * scale, 53.928558349609375 * scale, 44.72320556640625 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#c80000 #cc0000 } else if (i == 1) { ctx.save(); ctx.translate(55 * scale, 39.48748779296875 * scale); round_rect(ctx, -11.5 * scale, -36 * scale, 23 * scale, 72 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[2], color[3], 4 * scale); //#ffffff #2291d6 circle(ctx, 54.5 * scale, 78.48748779296875 * scale, 22.02271554554524 * scale); fill_path(ctx, color[4], color[3], 4 * scale); //#ffffff #2291d6 ctx.save(); ctx.translate(55.5 * scale, 57.287506103515625 * scale); round_rect(ctx, -9 * scale, -16 * scale, 18 * scale, 32 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[4]); //#ffffff ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66.5 * scale, 25.287506103515625 * scale); ctx.bezierCurveTo(60.5 * scale, 25.287506103515625 * scale, 63.5 * scale, 25.287506103515625 * scale, 54.5 * scale, 25.287506103515625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[5], 4 * scale); //#ffffff #2291d6 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66.5 * scale, 37.287506103515625 * scale); ctx.bezierCurveTo(60.5 * scale, 37.287506103515625 * scale, 60.5 * scale, 37.287506103515625 * scale, 54.5 * scale, 37.287506103515625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[5], 4 * scale); //#ffffff #2291d6 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(66.5 * scale, 50.287506103515625 * scale); ctx.bezierCurveTo(61 * scale, 50.287506103515625 * scale, 61 * scale, 50.287506103515625 * scale, 55.5 * scale, 50.287506103515625 * scale); ctx.closePath(); fill_path(ctx, undefined, color[5], 4 * scale); //#ffffff #2291d6 } else if (i == 2) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(45.928558349609375 * scale, 55.29463195800781 * scale); ctx.bezierCurveTo(38.928558349609375 * scale, 67.29463195800781 * scale, 38.928558349609375 * scale, 67.29463195800781 * scale, 31.928558349609375 * scale, 79.29463195800781 * scale); ctx.bezierCurveTo(15.928558349609375 * scale, 85.29463195800781 * scale, 17.928558349609375 * scale, 86.29463195800781 * scale, 17.928558349609375 * scale, 90.29463195800781 * scale); ctx.bezierCurveTo(19.928558349609375 * scale, 94.29463195800781 * scale, 21.928558349609375 * scale, 94.29463195800781 * scale, 27.928558349609375 * scale, 92.29463195800781 * scale); ctx.bezierCurveTo(29.928558349609375 * scale, 98.29463195800781 * scale, 30.928558349609375 * scale, 99.29463195800781 * scale, 33.928558349609375 * scale, 99.29463195800781 * scale); ctx.bezierCurveTo(38.928558349609375 * scale, 97.29463195800781 * scale, 38.928558349609375 * scale, 93.29463195800781 * scale, 37.928558349609375 * scale, 86.29463195800781 * scale); ctx.bezierCurveTo(45.428558349609375 * scale, 73.29463195800781 * scale, 51.928558349609375 * scale, 64.29463195800781 * scale, 52.928558349609375 * scale, 60.29463195800781 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(55.928558349609375 * scale, 8.866058349609375 * scale); ctx.bezierCurveTo(35.928558349609375 * scale, 35.866058349609375 * scale, 37.928558349609375 * scale, 48.866058349609375 * scale, 46.928558349609375 * scale, 62.866058349609375 * scale); ctx.bezierCurveTo(65.92855834960938 * scale, 72.86605834960938 * scale, 80.92855834960938 * scale, 55.866058349609375 * scale, 93.92855834960938 * scale, 36.866058349609375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(93.92855834960938 * scale, 36.866058349609375 * scale); ctx.bezierCurveTo(82.92855834960938 * scale, 37.866058349609375 * scale, 77.92855834960938 * scale, 36.866058349609375 * scale, 67.92855834960938 * scale, 28.866058349609375 * scale); ctx.bezierCurveTo(53.928558349609375 * scale, 16.866058349609375 * scale, 53.928558349609375 * scale, 14.866058349609375 * scale, 55.928558349609375 * scale, 7.866058349609375 * scale); ctx.bezierCurveTo(65.92855834960938 * scale, 4.866058349609375 * scale, 71.92855834960938 * scale, 7.866058349609375 * scale, 83.92855834960938 * scale, 13.866058349609375 * scale); ctx.bezierCurveTo(96.92855834960938 * scale, 21.866058349609375 * scale, 95.92855834960938 * scale, 31.866058349609375 * scale, 92.92855834960938 * scale, 36.866058349609375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#000000 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(68.92855834960938 * scale, 16.866058349609375 * scale); ctx.bezierCurveTo(71.92855834960938 * scale, 13.866058349609375 * scale, 76.92855834960938 * scale, 16.866058349609375 * scale, 79.92855834960938 * scale, 21.866058349609375 * scale); ctx.bezierCurveTo(82.92855834960938 * scale, 24.866058349609375 * scale, 81.92855834960938 * scale, 27.866058349609375 * scale, 73.92855834960938 * scale, 24.866058349609375 * scale); ctx.bezierCurveTo(67.92855834960938 * scale, 20.866058349609375 * scale, 66.92855834960938 * scale, 19.866058349609375 * scale, 67.92855834960938 * scale, 17.866058349609375 * scale); ctx.closePath(); fill_path(ctx, color[2]); //#000000 } else if (i == 3) { ctx.scale(0.9, 0.9); ctx.translate(6 * scale, 0); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(54 * scale, 0.421875 * scale); ctx.bezierCurveTo(84 * scale, 45.421875 * scale, 89 * scale, 51.421875 * scale, 83 * scale, 74.421875 * scale); ctx.bezierCurveTo(74 * scale, 95.421875 * scale, 46 * scale, 98.421875 * scale, 30 * scale, 78.421875 * scale); ctx.bezierCurveTo(22 * scale, 59.421875 * scale, 27 * scale, 49.421875 * scale, 34 * scale, 36.421875 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 6 * scale); //#60b5b6 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(74 * scale, 52.421875 * scale); ctx.bezierCurveTo(77 * scale, 73.421875 * scale, 69 * scale, 81.421875 * scale, 58 * scale, 81.421875 * scale); ctx.bezierCurveTo(66 * scale, 71.421875 * scale, 70 * scale, 66.421875 * scale, 74 * scale, 52.421875 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#60b5b6 } return can; } function create_gauges_mobile(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = 335 * scale; var gw = 250 * scale; var h = 120 * scale; var hg = 20 * scale; var gh = 35 * scale; var xw = 65 * scale; var r = 2 * scale; var lw = 4 * scale; can.width = w; can.height = h; ctx.beginPath(); ctx.translate(0, 15 * scale); round_rect(ctx, xw, 0, gw, hg, r); fill_path(ctx, null, "#69A148", lw); ctx.translate(0, gh); round_rect(ctx, xw, 0, gw, hg, r); fill_path(ctx, null, "#AF352A", lw); ctx.translate(0, gh); round_rect(ctx, xw, 0, gw, hg, r); fill_path(ctx, null, "#669BB1", lw); return can; } function create_oxygen_gauges(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = 600 * scale; var h = 22 * scale; var r = 4 * scale; var lw = 4 * scale; can.width = w; can.height = h; round_rect(ctx, 5 * scale, 5 * scale, w - 10 * scale, h - 10 * scale, r); fill_path(ctx, null, "#BBE8EF", lw); return can; } function create_recipe_button(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 573 * scale; can.height = 350 * scale; if (i == 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(336 * scale, 72 * scale); ctx.bezierCurveTo(366 * scale, 15 * scale, 426 * scale, 36 * scale, 497 * scale, 83 * scale); ctx.bezierCurveTo(522 * scale, 85 * scale, 522 * scale, 85 * scale, 547 * scale, 87 * scale); ctx.bezierCurveTo(476.5 * scale, 205 * scale, 476.5 * scale, 205 * scale, 406 * scale, 323 * scale); ctx.bezierCurveTo(297.5 * scale, 319 * scale, 297.5 * scale, 319 * scale, 189 * scale, 315 * scale); ctx.bezierCurveTo(105.5 * scale, 279 * scale, 105.5 * scale, 279 * scale, 22 * scale, 243 * scale); ctx.bezierCurveTo(92 * scale, 140 * scale, 92 * scale, 140 * scale, 162 * scale, 37 * scale); ctx.bezierCurveTo(173 * scale, 39 * scale, 173 * scale, 39 * scale, 184 * scale, 41 * scale); ctx.bezierCurveTo(185 * scale, 38.5 * scale, 185 * scale, 38.5 * scale, 186 * scale, 36 * scale); ctx.bezierCurveTo(323 * scale, 13 * scale, 322 * scale, 25 * scale, 337 * scale, 74 * scale); ctx.closePath(); fill_path(ctx, color[4], color[4], 35 * scale); //#9e793d #5f461f } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(168 * scale, 42 * scale); ctx.bezierCurveTo(255 * scale, 60 * scale, 255 * scale, 60 * scale, 342 * scale, 78 * scale); ctx.bezierCurveTo(443 * scale, 81.5 * scale, 443 * scale, 81.5 * scale, 544 * scale, 85 * scale); ctx.bezierCurveTo(475 * scale, 204.5 * scale, 475 * scale, 204.5 * scale, 406 * scale, 324 * scale); ctx.bezierCurveTo(297.5 * scale, 320 * scale, 297.5 * scale, 320 * scale, 189 * scale, 316 * scale); ctx.bezierCurveTo(105.5 * scale, 279 * scale, 105.5 * scale, 279 * scale, 22 * scale, 242 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(188 * scale, 41 * scale); ctx.bezierCurveTo(308 * scale, 15 * scale, 325 * scale, 18 * scale, 337 * scale, 66 * scale); ctx.bezierCurveTo(191 * scale, 305 * scale, 196 * scale, 286 * scale, 184 * scale, 307 * scale); ctx.bezierCurveTo(175 * scale, 250 * scale, 90 * scale, 254 * scale, 52 * scale, 241 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(336 * scale, 71 * scale); ctx.bezierCurveTo(375 * scale, 8 * scale, 429 * scale, 50 * scale, 518 * scale, 92 * scale); ctx.bezierCurveTo(455 * scale, 199.5 * scale, 455 * scale, 199.5 * scale, 392 * scale, 307 * scale); ctx.bezierCurveTo(227 * scale, 301 * scale, 261 * scale, 255 * scale, 188 * scale, 308 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(357 * scale, 76 * scale); ctx.bezierCurveTo(390 * scale, 67 * scale, 414 * scale, 86 * scale, 435 * scale, 104 * scale); ctx.bezierCurveTo(417 * scale, 135 * scale, 417 * scale, 135 * scale, 399 * scale, 166 * scale); ctx.bezierCurveTo(352 * scale, 140 * scale, 345 * scale, 139 * scale, 319 * scale, 142 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(309 * scale, 168 * scale); ctx.bezierCurveTo(345 * scale, 163 * scale, 372 * scale, 180 * scale, 412 * scale, 203 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(263 * scale, 54 * scale); ctx.bezierCurveTo(305 * scale, 44 * scale, 307 * scale, 51 * scale, 311 * scale, 64 * scale); ctx.bezierCurveTo(270.5 * scale, 129.5 * scale, 270.5 * scale, 129.5 * scale, 230 * scale, 195 * scale); ctx.bezierCurveTo(221 * scale, 175 * scale, 203 * scale, 171 * scale, 186 * scale, 172 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(292 * scale, 198 * scale); ctx.bezierCurveTo(328 * scale, 191 * scale, 364 * scale, 211 * scale, 401 * scale, 237 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(245 * scale, 68 * scale); ctx.bezierCurveTo(210 * scale, 72 * scale, 210 * scale, 72 * scale, 189 * scale, 69 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(222 * scale, 96 * scale); ctx.bezierCurveTo(196 * scale, 97 * scale, 193 * scale, 97 * scale, 177 * scale, 92 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(207 * scale, 124 * scale); ctx.bezierCurveTo(179 * scale, 123 * scale, 177 * scale, 124 * scale, 161 * scale, 119 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(115 * scale, 183 * scale); ctx.bezierCurveTo(184 * scale, 185 * scale, 203 * scale, 198 * scale, 219 * scale, 221 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(98 * scale, 213 * scale); ctx.bezierCurveTo(161 * scale, 214 * scale, 193 * scale, 227 * scale, 201 * scale, 249 * scale); fill_path(ctx, color[2], color[3], 12 * scale); //#5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(399 * scale, 257 * scale); ctx.bezierCurveTo(287 * scale, 215 * scale, 280 * scale, 215 * scale, 263 * scale, 222 * scale); ctx.bezierCurveTo(253 * scale, 238 * scale, 247 * scale, 245 * scale, 243 * scale, 254 * scale); ctx.bezierCurveTo(267 * scale, 236 * scale, 292 * scale, 263 * scale, 377 * scale, 284 * scale); fill_path(ctx, color[3], color[3], 12 * scale); //#5f461f return can; } function create_quest_button(scale, draw_shadow, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 170 * scale; can.height = 200 * scale; ctx.translate(5 * scale, 15 * scale); if (i == 1) { ctx.translate(0, -5 * scale); circle(ctx, 77.00003051757812 * scale, 104.49432373046875 * scale, 71.84010022264724 * scale); fill_path(ctx, color[1], color[5], 20 * scale); //#9e793d #5f461f circle(ctx, 77.00003051757812 * scale, 104.22160339355469 * scale, 61.554853586049575 * scale); fill_path(ctx, color[1], color[5], 20 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(77.00003051757812 * scale, 31.267044067382812 * scale); round_rect(ctx, -6 * scale, -12.5 * scale, 12 * scale, 25 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[5], 20 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(77.00003051757812 * scale, 13.267044067382812 * scale); round_rect(ctx, -15 * scale, -10.5 * scale, 30 * scale, 21 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[5], 20 * scale); //#9e793d #5f461f } circle(ctx, 77.00003051757812 * scale, 104.49432373046875 * scale, 71.84010022264724 * scale); fill_path(ctx, color[1], color[2], 7 * scale); //#9e793d #5f461f circle(ctx, 77.00003051757812 * scale, 104.22160339355469 * scale, 61.554853586049575 * scale); fill_path(ctx, color[1], color[2], 7 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(18.000030517578125 * scale, 105.85795593261719 * scale); ctx.bezierCurveTo(134.00003051757812 * scale, 104.85795593261719 * scale, 77.00003051757812 * scale, 104.85795593261719 * scale, 136.00003051757812 * scale, 103.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f circle(ctx, 77.00003051757812 * scale, 104.6761474609375 * scale, 32.55764119219941 * scale); fill_path(ctx, color[1], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(78.00003051757812 * scale, 112.03977966308594 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 87.03977966308594 * scale, 78.00003051757812 * scale, 87.03977966308594 * scale, 78.00003051757812 * scale, 62.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(78.00003051757812 * scale, 48.03977966308594 * scale); ctx.bezierCurveTo(82.00003051757812 * scale, 55.53977966308594 * scale, 82.00003051757812 * scale, 55.53977966308594 * scale, 86.00003051757812 * scale, 63.03977966308594 * scale); ctx.bezierCurveTo(78.00003051757812 * scale, 63.03977966308594 * scale, 78.00003051757812 * scale, 63.03977966308594 * scale, 70.00003051757812 * scale, 63.03977966308594 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80.00003051757812 * scale, 111.6761474609375 * scale); ctx.bezierCurveTo(95.00003051757812 * scale, 97.1761474609375 * scale, 95.00003051757812 * scale, 97.1761474609375 * scale, 110.00003051757812 * scale, 82.6761474609375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 8 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.00003051757812 * scale, 76.6761474609375 * scale); ctx.bezierCurveTo(111.50003051757812 * scale, 82.6761474609375 * scale, 111.50003051757812 * scale, 82.6761474609375 * scale, 116.00003051757812 * scale, 88.6761474609375 * scale); ctx.bezierCurveTo(118.50003051757812 * scale, 81.6761474609375 * scale, 118.50003051757812 * scale, 81.6761474609375 * scale, 121.00003051757812 * scale, 74.6761474609375 * scale); ctx.closePath(); fill_path(ctx, color[3], color[2], 4 * scale); //#9e793d #5f461f circle(ctx, 77.00003051757812 * scale, 105.03977966308594 * scale, 15.556349186104045 * scale); fill_path(ctx, color[3], color[2], 4 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(77.00003051757812 * scale, 31.267044067382812 * scale); ctx.rotate(0); round_rect(ctx, -6 * scale, -12.5 * scale, 12 * scale, 25 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 7 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(77.00003051757812 * scale, 13.267044067382812 * scale); ctx.rotate(0); round_rect(ctx, -15 * scale, -10.5 * scale, 30 * scale, 21 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 7 * scale); //#9e793d #5f461f return can; } function create_market_button(scale, color, i) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 81 * scale; can.height = 77 * scale; ctx.translate(0, 10 * scale); ctx.scale(0.2, 0.2); ctx.translate(0, -30 * scale); if (i == 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(67.5 * scale, 316.0625 * scale, 134.5 * scale, 334.0625 * scale, 199.5 * scale, 319.0625 * scale); ctx.bezierCurveTo(254.5 * scale, 304.0625 * scale, 346.5 * scale, 270.0625 * scale, 348.5 * scale, 237.0625 * scale); ctx.bezierCurveTo(359.5 * scale, 206.0625 * scale, 318.5 * scale, 129.0625 * scale, 262.5 * scale, 122.0625 * scale); ctx.bezierCurveTo(213.5 * scale, 115.0625 * scale, 166.5 * scale, 133.0625 * scale, 104.5 * scale, 166.0625 * scale); ctx.bezierCurveTo(54.5 * scale, 194.0625 * scale, 23.5 * scale, 241.0625 * scale, 36.5 * scale, 277.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[3], 50 * scale); //#bf8d51 #7d5133 } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(36.5 * scale, 278.0625 * scale); ctx.bezierCurveTo(67.5 * scale, 316.0625 * scale, 134.5 * scale, 334.0625 * scale, 199.5 * scale, 319.0625 * scale); ctx.bezierCurveTo(254.5 * scale, 304.0625 * scale, 346.5 * scale, 270.0625 * scale, 348.5 * scale, 237.0625 * scale); ctx.bezierCurveTo(359.5 * scale, 206.0625 * scale, 318.5 * scale, 129.0625 * scale, 262.5 * scale, 122.0625 * scale); ctx.bezierCurveTo(213.5 * scale, 115.0625 * scale, 166.5 * scale, 133.0625 * scale, 104.5 * scale, 166.0625 * scale); ctx.bezierCurveTo(54.5 * scale, 194.0625 * scale, 23.5 * scale, 241.0625 * scale, 36.5 * scale, 277.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 19 * scale); //#bf8d51 #7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(214.5 * scale, 124.0625 * scale); ctx.bezierCurveTo(242.5 * scale, 125.0625 * scale, 272.5 * scale, 159.0625 * scale, 283.5 * scale, 184.0625 * scale); ctx.bezierCurveTo(277.5 * scale, 161.0625 * scale, 233.5 * scale, 128.0625 * scale, 219.5 * scale, 122.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 19 * scale); //#bf8d51 #7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(157.5 * scale, 145.0625 * scale); ctx.bezierCurveTo(176.5 * scale, 148.0625 * scale, 205.5 * scale, 176.0625 * scale, 212.5 * scale, 197.0625 * scale); ctx.bezierCurveTo(205.5 * scale, 178.0625 * scale, 177.5 * scale, 152.0625 * scale, 156.5 * scale, 142.0625 * scale); ctx.closePath(); fill_path(ctx, color[0], color[1], 19 * scale); //#bf8d51 #7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(103.5 * scale, 169.0625 * scale); ctx.bezierCurveTo(160.5 * scale, 166.0625 * scale, 228.5 * scale, 312.0625 * scale, 162.5 * scale, 323.0625 * scale); ctx.bezierCurveTo(128.5 * scale, 330.0625 * scale, 45.5 * scale, 312.0625 * scale, 34.5 * scale, 268.0625 * scale); ctx.bezierCurveTo(30.5 * scale, 238.0625 * scale, 44.5 * scale, 222.0625 * scale, 52.5 * scale, 211.0625 * scale); ctx.bezierCurveTo(82.5 * scale, 174.0625 * scale, 104.5 * scale, 166.0625 * scale, 119.5 * scale, 172.0625 * scale); ctx.closePath(); fill_path(ctx, color[2], color[1], 19 * scale); //#bf8d51 #7d5133 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(194.5 * scale, 313.0625 * scale); ctx.bezierCurveTo(222.5 * scale, 306.0625 * scale, 319.5 * scale, 271.0625 * scale, 337.5 * scale, 241.0625 * scale); ctx.bezierCurveTo(274.5 * scale, 270.0625 * scale, 216.5 * scale, 288.0625 * scale, 199.5 * scale, 287.0625 * scale); ctx.bezierCurveTo(198.5 * scale, 302.0625 * scale, 195.5 * scale, 311.0625 * scale, 193.5 * scale, 312.0625 * scale); ctx.closePath(); fill_path(ctx, color[1]); //#ab7a3f ctx.scale(3, 3); ctx.translate(15, 10 * scale); if (i == 1) { ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(4 * scale, 32 * scale); ctx.bezierCurveTo(19 * scale, 25 * scale, 19 * scale, 25 * scale, 34 * scale, 18 * scale); ctx.bezierCurveTo(41.5 * scale, 23.5 * scale, 41.5 * scale, 23.5 * scale, 49 * scale, 29 * scale); ctx.bezierCurveTo(59.5 * scale, 20 * scale, 59.5 * scale, 20 * scale, 70 * scale, 11 * scale); fill_path(ctx, undefined, color[3], 28 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 6 * scale); ctx.bezierCurveTo(63.5 * scale, 13.5 * scale, 63.5 * scale, 13.5 * scale, 71 * scale, 21 * scale); ctx.bezierCurveTo(74.5 * scale, 11.5 * scale, 74.5 * scale, 11.5 * scale, 78 * scale, 2 * scale); ctx.closePath(); fill_path(ctx, color[3], color[3], 28 * scale); //#9e793d #5f461f } ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(4 * scale, 32 * scale); ctx.bezierCurveTo(19 * scale, 25 * scale, 19 * scale, 25 * scale, 34 * scale, 18 * scale); ctx.bezierCurveTo(41.5 * scale, 23.5 * scale, 41.5 * scale, 23.5 * scale, 49 * scale, 29 * scale); ctx.bezierCurveTo(59.5 * scale, 20 * scale, 59.5 * scale, 20 * scale, 70 * scale, 11 * scale); fill_path(ctx, undefined, color[1], 17 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 6 * scale); ctx.bezierCurveTo(63.5 * scale, 13.5 * scale, 63.5 * scale, 13.5 * scale, 71 * scale, 21 * scale); ctx.bezierCurveTo(74.5 * scale, 11.5 * scale, 74.5 * scale, 11.5 * scale, 78 * scale, 2 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 17 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(4 * scale, 32 * scale); ctx.bezierCurveTo(19 * scale, 25 * scale, 19 * scale, 25 * scale, 34 * scale, 18 * scale); ctx.bezierCurveTo(41.5 * scale, 23.5 * scale, 41.5 * scale, 23.5 * scale, 49 * scale, 29 * scale); ctx.bezierCurveTo(59.5 * scale, 20 * scale, 59.5 * scale, 20 * scale, 70 * scale, 11 * scale); fill_path(ctx, undefined, color[2], 10 * scale); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(56 * scale, 6 * scale); ctx.bezierCurveTo(63.5 * scale, 13.5 * scale, 63.5 * scale, 13.5 * scale, 71 * scale, 21 * scale); ctx.bezierCurveTo(74.5 * scale, 11.5 * scale, 74.5 * scale, 11.5 * scale, 78 * scale, 2 * scale); ctx.closePath(); fill_path(ctx, color[2], color[2], 10 * scale); //#9e793d #5f461f return can; } function create_spanner(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 144 * scale; can.height = 280 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(5 * scale, 5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(62 * scale, 103.79999542236328 * scale); ctx.bezierCurveTo(62.5 * scale, 148.79999542236328 * scale, 62.5 * scale, 148.79999542236328 * scale, 63 * scale, 193.79999542236328 * scale); ctx.bezierCurveTo(63 * scale, 219.79999542236328 * scale, 47 * scale, 217.79999542236328 * scale, 51 * scale, 230.79999542236328 * scale); ctx.bezierCurveTo(62 * scale, 255.79999542236328 * scale, 74 * scale, 260.7999954223633 * scale, 72 * scale, 248.79999542236328 * scale); ctx.bezierCurveTo(65 * scale, 226.79999542236328 * scale, 71 * scale, 229.79999542236328 * scale, 76 * scale, 225.79999542236328 * scale); ctx.bezierCurveTo(90 * scale, 224.79999542236328 * scale, 89 * scale, 232.79999542236328 * scale, 90 * scale, 243.79999542236328 * scale); ctx.bezierCurveTo(95 * scale, 253.79999542236328 * scale, 99 * scale, 249.79999542236328 * scale, 100 * scale, 229.79999542236328 * scale); ctx.bezierCurveTo(102 * scale, 213.79999542236328 * scale, 98 * scale, 214.79999542236328 * scale, 90 * scale, 205.79999542236328 * scale); ctx.bezierCurveTo(82 * scale, 201.79999542236328 * scale, 82 * scale, 185.79999542236328 * scale, 82 * scale, 114.79999542236328 * scale); ctx.bezierCurveTo(80 * scale, 73 * scale, 82 * scale, 68 * scale, 93 * scale, 53 * scale); ctx.bezierCurveTo(98 * scale, 37 * scale, 65 * scale, 14 * scale, 74 * scale, 33 * scale); ctx.bezierCurveTo(82 * scale, 56 * scale, 77 * scale, 52 * scale, 69 * scale, 54 * scale); ctx.bezierCurveTo(55 * scale, 57 * scale, 57 * scale, 53 * scale, 54 * scale, 39 * scale); ctx.bezierCurveTo(46 * scale, 20 * scale, 37 * scale, 61 * scale, 50 * scale, 68 * scale); ctx.bezierCurveTo(65 * scale, 81 * scale, 60 * scale, 89 * scale, 62 * scale, 102 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(-5 * scale, -5 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(62 * scale, 103.79999542236328 * scale); ctx.bezierCurveTo(62.5 * scale, 148.79999542236328 * scale, 62.5 * scale, 148.79999542236328 * scale, 63 * scale, 193.79999542236328 * scale); ctx.bezierCurveTo(63 * scale, 219.79999542236328 * scale, 47 * scale, 217.79999542236328 * scale, 51 * scale, 230.79999542236328 * scale); ctx.bezierCurveTo(62 * scale, 255.79999542236328 * scale, 74 * scale, 260.7999954223633 * scale, 72 * scale, 248.79999542236328 * scale); ctx.bezierCurveTo(65 * scale, 226.79999542236328 * scale, 71 * scale, 229.79999542236328 * scale, 76 * scale, 225.79999542236328 * scale); ctx.bezierCurveTo(90 * scale, 224.79999542236328 * scale, 89 * scale, 232.79999542236328 * scale, 90 * scale, 243.79999542236328 * scale); ctx.bezierCurveTo(95 * scale, 253.79999542236328 * scale, 99 * scale, 249.79999542236328 * scale, 100 * scale, 229.79999542236328 * scale); ctx.bezierCurveTo(102 * scale, 213.79999542236328 * scale, 98 * scale, 214.79999542236328 * scale, 90 * scale, 205.79999542236328 * scale); ctx.bezierCurveTo(82 * scale, 201.79999542236328 * scale, 82 * scale, 185.79999542236328 * scale, 82 * scale, 114.79999542236328 * scale); ctx.bezierCurveTo(80 * scale, 73 * scale, 82 * scale, 68 * scale, 93 * scale, 53 * scale); ctx.bezierCurveTo(98 * scale, 37 * scale, 65 * scale, 14 * scale, 74 * scale, 33 * scale); ctx.bezierCurveTo(82 * scale, 56 * scale, 77 * scale, 52 * scale, 69 * scale, 54 * scale); ctx.bezierCurveTo(55 * scale, 57 * scale, 57 * scale, 53 * scale, 54 * scale, 39 * scale); ctx.bezierCurveTo(46 * scale, 20 * scale, 37 * scale, 61 * scale, 50 * scale, 68 * scale); ctx.bezierCurveTo(65 * scale, 81 * scale, 60 * scale, 89 * scale, 62 * scale, 102 * scale); ctx.closePath(); fill_path(ctx, color[1], color[2], 6 * scale); //#9e793d #5f461f return can; } // Christmas function create_present(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 160 * scale; can.height = 161 * scale; ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(80.5 * scale, 78 * scale); round_rect(ctx, -71.5 * scale, -71 * scale, 143 * scale, 143 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(80.5 * scale, 78 * scale); round_rect(ctx, -71.5 * scale, -71 * scale, 143 * scale, 143 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[1], color[2], 6 * scale); //#9e793d #5f461f ctx.save(); ctx.translate(80 * scale, 78.5 * scale); round_rect(ctx, -17 * scale, -72.5 * scale, 34 * scale, 145 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(80 * scale, 79.5 * scale); round_rect(ctx, -73 * scale, -16.5 * scale, 145 * scale, 34 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(80 * scale, 79.5 * scale); round_rect(ctx, -73 * scale, -16.5 * scale, 145 * scale, 34 * scale, 10 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 71 * scale); ctx.bezierCurveTo(90 * scale, 42 * scale, 98 * scale, 36 * scale, 109 * scale, 43 * scale); ctx.bezierCurveTo(119 * scale, 47 * scale, 128 * scale, 62 * scale, 107 * scale, 72 * scale); ctx.bezierCurveTo(96 * scale, 78.5 * scale, 96 * scale, 78.5 * scale, 85 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 78 * scale); ctx.bezierCurveTo(113 * scale, 82 * scale, 123 * scale, 97 * scale, 115 * scale, 108 * scale); ctx.bezierCurveTo(110 * scale, 119 * scale, 98 * scale, 124 * scale, 87 * scale, 107 * scale); ctx.bezierCurveTo(81.5 * scale, 94.5 * scale, 81.5 * scale, 94.5 * scale, 76 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 73 * scale); ctx.bezierCurveTo(64 * scale, 37 * scale, 55 * scale, 34 * scale, 45 * scale, 42 * scale); ctx.bezierCurveTo(30 * scale, 54 * scale, 36 * scale, 65 * scale, 51 * scale, 72 * scale); ctx.bezierCurveTo(62.5 * scale, 77 * scale, 62.5 * scale, 77 * scale, 74 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(82 * scale, 83 * scale); ctx.bezierCurveTo(73 * scale, 107 * scale, 60 * scale, 123 * scale, 47 * scale, 113 * scale); ctx.bezierCurveTo(33 * scale, 105 * scale, 33 * scale, 92 * scale, 52 * scale, 85 * scale); ctx.bezierCurveTo(74 * scale, 73 * scale, 77 * scale, 76 * scale, 76 * scale, 75 * scale); ctx.closePath(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(79 * scale, 71 * scale); ctx.bezierCurveTo(90 * scale, 42 * scale, 98 * scale, 36 * scale, 109 * scale, 43 * scale); ctx.bezierCurveTo(119 * scale, 47 * scale, 128 * scale, 62 * scale, 107 * scale, 72 * scale); ctx.bezierCurveTo(96 * scale, 78.5 * scale, 96 * scale, 78.5 * scale, 85 * scale, 85 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(84 * scale, 78 * scale); ctx.bezierCurveTo(113 * scale, 82 * scale, 123 * scale, 97 * scale, 115 * scale, 108 * scale); ctx.bezierCurveTo(110 * scale, 119 * scale, 98 * scale, 124 * scale, 87 * scale, 107 * scale); ctx.bezierCurveTo(81.5 * scale, 94.5 * scale, 81.5 * scale, 94.5 * scale, 76 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(80 * scale, 73 * scale); ctx.bezierCurveTo(64 * scale, 37 * scale, 55 * scale, 34 * scale, 45 * scale, 42 * scale); ctx.bezierCurveTo(30 * scale, 54 * scale, 36 * scale, 65 * scale, 51 * scale, 72 * scale); ctx.bezierCurveTo(62.5 * scale, 77 * scale, 62.5 * scale, 77 * scale, 74 * scale, 82 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(82 * scale, 83 * scale); ctx.bezierCurveTo(73 * scale, 107 * scale, 60 * scale, 123 * scale, 47 * scale, 113 * scale); ctx.bezierCurveTo(33 * scale, 105 * scale, 33 * scale, 92 * scale, 52 * scale, 85 * scale); ctx.bezierCurveTo(74 * scale, 73 * scale, 77 * scale, 76 * scale, 76 * scale, 75 * scale); ctx.closePath(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f ctx.globalAlpha = draw_shadow ? 0.5 : 1; ctx.translate(0, 10 * scale); ctx.save(); ctx.translate(78.5 * scale, 78 * scale); round_rect(ctx, -13.5 * scale, -14 * scale, 27 * scale, 27 * scale, 6 * scale); ctx.restore(); fill_path(ctx, color[0]); //#9e793d #5f461f ctx.globalAlpha = 1; ctx.translate(0, -10 * scale); ctx.save(); ctx.translate(78.5 * scale, 78 * scale); round_rect(ctx, -13.5 * scale, -14 * scale, 27 * scale, 27 * scale, 6 * scale); ctx.restore(); fill_path(ctx, color[3], color[4], 6 * scale); //#8c5a58 #5f461f return can; } function create_crown(scale, draw_shadow, color) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 372 * scale; can.height = 358 * scale; ctx.translate(0 * scale, 10 * scale); ctx.globalAlpha = draw_shadow ? 0.2 : 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(247.00003051757812 * scale, 115.76704406738281 * scale); ctx.bezierCurveTo(305.0000305175781 * scale, 124.76704406738281 * scale, 335.0000305175781 * scale, 112.76704406738281 * scale, 359.0000305175781 * scale, 93.76704406738281 * scale); ctx.bezierCurveTo(359.5000305175781 * scale, 113.26704406738281 * scale, 359.5000305175781 * scale, 113.26704406738281 * scale, 360.0000305175781 * scale, 132.7670440673828 * scale); ctx.bezierCurveTo(339.0000305175781 * scale, 177.7670440673828 * scale, 281.0000305175781 * scale, 178.7670440673828 * scale, 243.00003051757812 * scale, 183.7670440673828 * scale); ctx.bezierCurveTo(214.50003051757812 * scale, 214.2670440673828 * scale, 214.50003051757812 * scale, 214.2670440673828 * scale, 186.00003051757812 * scale, 244.7670440673828 * scale); ctx.bezierCurveTo(155.00003051757812 * scale, 214.2670440673828 * scale, 155.00003051757812 * scale, 214.2670440673828 * scale, 124.00003051757812 * scale, 183.7670440673828 * scale); ctx.bezierCurveTo(51.000030517578125 * scale, 180.7670440673828 * scale, 21.000030517578125 * scale, 161.7670440673828 * scale, 9.000030517578125 * scale, 129.7670440673828 * scale); ctx.bezierCurveTo(8.500030517578125 * scale, 110.76704406738281 * scale, 8.500030517578125 * scale, 110.76704406738281 * scale, 8.000030517578125 * scale, 91.76704406738281 * scale); ctx.bezierCurveTo(31.000030517578125 * scale, 112.76704406738281 * scale, 87.00003051757812 * scale, 119.76704406738281 * scale, 116.00003051757812 * scale, 117.76704406738281 * scale); ctx.bezierCurveTo(175.00003051757812 * scale, 18.767044067382812 * scale, 170.00003051757812 * scale, 23.767044067382812 * scale, 181.00003051757812 * scale, 14.767044067382812 * scale); ctx.bezierCurveTo(199.00003051757812 * scale, 34.76704406738281 * scale, 203.00003051757812 * scale, 54.76704406738281 * scale, 247.00003051757812 * scale, 115.76704406738281 * scale); ctx.closePath(); fill_path(ctx, color[0], color[0], 10 * scale); //#9e793d #e6a448 ctx.translate(0 * scale, -10 * scale); ctx.globalAlpha = 1; ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(107.00003051757812 * scale, 54.13069152832031 * scale); ctx.bezierCurveTo(106.50003051757812 * scale, 38.63069152832031 * scale, 106.50003051757812 * scale, 38.63069152832031 * scale, 106.00003051757812 * scale, 23.130691528320312 * scale); ctx.bezierCurveTo(121.50003051757812 * scale, 38.13069152832031 * scale, 121.50003051757812 * scale, 38.13069152832031 * scale, 137.00003051757812 * scale, 53.13069152832031 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(233.00003051757812 * scale, 53.6761474609375 * scale); ctx.bezierCurveTo(247.00003051757812 * scale, 37.1761474609375 * scale, 247.00003051757812 * scale, 37.1761474609375 * scale, 261.0000305175781 * scale, 20.6761474609375 * scale); ctx.bezierCurveTo(261.0000305175781 * scale, 36.1761474609375 * scale, 261.0000305175781 * scale, 36.1761474609375 * scale, 261.0000305175781 * scale, 51.6761474609375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(293.0000305175781 * scale, 54.403411865234375 * scale); ctx.bezierCurveTo(300.0000305175781 * scale, 49.903411865234375 * scale, 300.0000305175781 * scale, 49.903411865234375 * scale, 307.0000305175781 * scale, 45.403411865234375 * scale); ctx.bezierCurveTo(307.0000305175781 * scale, 49.903411865234375 * scale, 307.0000305175781 * scale, 49.903411865234375 * scale, 307.0000305175781 * scale, 54.403411865234375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(77.00003051757812 * scale, 54.403411865234375 * scale); ctx.bezierCurveTo(70.00003051757812 * scale, 50.403411865234375 * scale, 70.00003051757812 * scale, 50.403411865234375 * scale, 63.000030517578125 * scale, 46.403411865234375 * scale); ctx.bezierCurveTo(62.500030517578125 * scale, 50.903411865234375 * scale, 62.500030517578125 * scale, 50.903411865234375 * scale, 62.000030517578125 * scale, 55.403411865234375 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(58.000030517578125 * scale, 122.3125 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 97.3125 * scale, 59.500030517578125 * scale, 97.3125 * scale, 61.000030517578125 * scale, 72.3125 * scale); ctx.bezierCurveTo(91.00003051757812 * scale, 89.3125 * scale, 91.00003051757812 * scale, 89.3125 * scale, 121.00003051757812 * scale, 106.3125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 10 * scale); //#9e793d #bc852c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(310.0000305175781 * scale, 127.3125 * scale); ctx.bezierCurveTo(308.0000305175781 * scale, 98.3125 * scale, 308.0000305175781 * scale, 98.3125 * scale, 306.0000305175781 * scale, 69.3125 * scale); ctx.bezierCurveTo(274.5000305175781 * scale, 88.8125 * scale, 274.5000305175781 * scale, 88.8125 * scale, 243.00003051757812 * scale, 108.3125 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 10 * scale); //#9e793d #bc852c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(226.00003051757812 * scale, 87.85795593261719 * scale); ctx.bezierCurveTo(243.50003051757812 * scale, 66.85795593261719 * scale, 243.50003051757812 * scale, 66.85795593261719 * scale, 261.0000305175781 * scale, 45.85795593261719 * scale); ctx.bezierCurveTo(265.0000305175781 * scale, 83.85795593261719 * scale, 265.0000305175781 * scale, 83.85795593261719 * scale, 269.0000305175781 * scale, 121.85795593261719 * scale); ctx.bezierCurveTo(235.00003051757812 * scale, 122.85795593261719 * scale, 233.00003051757812 * scale, 107.85795593261719 * scale, 228.00003051757812 * scale, 90.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.00003051757812 * scale, 128.8579559326172 * scale); ctx.bezierCurveTo(104.50003051757812 * scale, 87.85795593261719 * scale, 104.50003051757812 * scale, 87.85795593261719 * scale, 104.00003051757812 * scale, 46.85795593261719 * scale); ctx.bezierCurveTo(126.50003051757812 * scale, 69.35795593261719 * scale, 126.50003051757812 * scale, 69.35795593261719 * scale, 149.00003051757812 * scale, 91.85795593261719 * scale); ctx.bezierCurveTo(130.00003051757812 * scale, 123.85795593261719 * scale, 123.00003051757812 * scale, 132.8579559326172 * scale, 107.00003051757812 * scale, 130.8579559326172 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 10 * scale); //#9e793d #bc852c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(59.000030517578125 * scale, 121.85795593261719 * scale); ctx.bezierCurveTo(59.500030517578125 * scale, 99.35795593261719 * scale, 59.500030517578125 * scale, 99.35795593261719 * scale, 60.000030517578125 * scale, 76.85795593261719 * scale); ctx.bezierCurveTo(84.00003051757812 * scale, 92.35795593261719 * scale, 84.00003051757812 * scale, 92.35795593261719 * scale, 108.00003051757812 * scale, 107.85795593261719 * scale); ctx.bezierCurveTo(106.00003051757812 * scale, 148.8579559326172 * scale, 86.00003051757812 * scale, 148.8579559326172 * scale, 62.000030517578125 * scale, 123.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(105.00003051757812 * scale, 132.8579559326172 * scale); ctx.bezierCurveTo(104.50003051757812 * scale, 93.35795593261719 * scale, 104.50003051757812 * scale, 93.35795593261719 * scale, 104.00003051757812 * scale, 53.85795593261719 * scale); ctx.bezierCurveTo(126.50003051757812 * scale, 75.85795593261719 * scale, 126.50003051757812 * scale, 75.85795593261719 * scale, 149.00003051757812 * scale, 97.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(311.0000305175781 * scale, 126.85795593261719 * scale); ctx.bezierCurveTo(309.0000305175781 * scale, 101.35795593261719 * scale, 309.0000305175781 * scale, 101.35795593261719 * scale, 307.0000305175781 * scale, 75.85795593261719 * scale); ctx.bezierCurveTo(271.0000305175781 * scale, 96.85795593261719 * scale, 271.0000305175781 * scale, 96.85795593261719 * scale, 235.00003051757812 * scale, 117.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(228.00003051757812 * scale, 96.85795593261719 * scale); ctx.bezierCurveTo(244.50003051757812 * scale, 74.85795593261719 * scale, 244.50003051757812 * scale, 74.85795593261719 * scale, 261.0000305175781 * scale, 52.85795593261719 * scale); ctx.bezierCurveTo(265.5000305175781 * scale, 89.85795593261719 * scale, 265.5000305175781 * scale, 89.85795593261719 * scale, 270.0000305175781 * scale, 126.85795593261719 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(12.000030517578125 * scale, 86.13069152832031 * scale); ctx.bezierCurveTo(36.000030517578125 * scale, 113.13069152832031 * scale, 84.00003051757812 * scale, 111.13069152832031 * scale, 116.00003051757812 * scale, 113.13069152832031 * scale); ctx.bezierCurveTo(164.00003051757812 * scale, 23.130691528320312 * scale, 172.00003051757812 * scale, 18.130691528320312 * scale, 181.00003051757812 * scale, 9.130691528320312 * scale); ctx.bezierCurveTo(199.00003051757812 * scale, 29.130691528320312 * scale, 221.00003051757812 * scale, 78.13069152832031 * scale, 247.00003051757812 * scale, 112.13069152832031 * scale); ctx.bezierCurveTo(301.0000305175781 * scale, 122.13069152832031 * scale, 338.0000305175781 * scale, 111.13069152832031 * scale, 359.0000305175781 * scale, 94.13069152832031 * scale); ctx.bezierCurveTo(359.0000305175781 * scale, 113.13069152832031 * scale, 358.5000305175781 * scale, 105.13069152832031 * scale, 358.0000305175781 * scale, 116.13069152832031 * scale); ctx.bezierCurveTo(270.5000305175781 * scale, 130.1306915283203 * scale, 270.5000305175781 * scale, 130.1306915283203 * scale, 183.00003051757812 * scale, 144.1306915283203 * scale); ctx.bezierCurveTo(98.00003051757812 * scale, 128.6306915283203 * scale, 98.00003051757812 * scale, 128.6306915283203 * scale, 13.000030517578125 * scale, 113.13069152832031 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 10 * scale); //#9e793d #bc852c ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(247.00003051757812 * scale, 115.76704406738281 * scale); ctx.bezierCurveTo(305.0000305175781 * scale, 124.76704406738281 * scale, 335.0000305175781 * scale, 112.76704406738281 * scale, 359.0000305175781 * scale, 93.76704406738281 * scale); ctx.bezierCurveTo(359.5000305175781 * scale, 113.26704406738281 * scale, 359.5000305175781 * scale, 113.26704406738281 * scale, 360.0000305175781 * scale, 132.7670440673828 * scale); ctx.bezierCurveTo(339.0000305175781 * scale, 177.7670440673828 * scale, 281.0000305175781 * scale, 178.7670440673828 * scale, 243.00003051757812 * scale, 183.7670440673828 * scale); ctx.bezierCurveTo(214.50003051757812 * scale, 214.2670440673828 * scale, 214.50003051757812 * scale, 214.2670440673828 * scale, 186.00003051757812 * scale, 244.7670440673828 * scale); ctx.bezierCurveTo(155.00003051757812 * scale, 214.2670440673828 * scale, 155.00003051757812 * scale, 214.2670440673828 * scale, 124.00003051757812 * scale, 183.7670440673828 * scale); ctx.bezierCurveTo(51.000030517578125 * scale, 180.7670440673828 * scale, 21.000030517578125 * scale, 161.7670440673828 * scale, 9.000030517578125 * scale, 129.7670440673828 * scale); ctx.bezierCurveTo(8.500030517578125 * scale, 110.76704406738281 * scale, 8.500030517578125 * scale, 110.76704406738281 * scale, 8.000030517578125 * scale, 91.76704406738281 * scale); ctx.bezierCurveTo(31.000030517578125 * scale, 112.76704406738281 * scale, 87.00003051757812 * scale, 119.76704406738281 * scale, 116.00003051757812 * scale, 117.76704406738281 * scale); ctx.bezierCurveTo(175.00003051757812 * scale, 18.767044067382812 * scale, 170.00003051757812 * scale, 23.767044067382812 * scale, 181.00003051757812 * scale, 14.767044067382812 * scale); ctx.bezierCurveTo(199.00003051757812 * scale, 34.76704406738281 * scale, 203.00003051757812 * scale, 54.76704406738281 * scale, 247.00003051757812 * scale, 115.76704406738281 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(27.000030517578125 * scale, 94.76704406738281 * scale); ctx.bezierCurveTo(11.000030517578125 * scale, 81.76704406738281 * scale, 31.000030517578125 * scale, 72.76704406738281 * scale, 44.000030517578125 * scale, 59.76704406738281 * scale); ctx.bezierCurveTo(9.000030517578125 * scale, 65.76704406738281 * scale, 4.000030517578125 * scale, 78.76704406738281 * scale, 9.000030517578125 * scale, 89.76704406738281 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(352.0000305175781 * scale, 100.76705932617188 * scale); ctx.bezierCurveTo(362.0000305175781 * scale, 92.76705932617188 * scale, 352.0000305175781 * scale, 84.76705932617188 * scale, 340.0000305175781 * scale, 68.76705932617188 * scale); ctx.bezierCurveTo(360.0000305175781 * scale, 69.76705932617188 * scale, 364.0000305175781 * scale, 79.76705932617188 * scale, 364.0000305175781 * scale, 94.76705932617188 * scale); ctx.closePath(); fill_path(ctx, color[1], color[1], 1 * scale); //#30f71e #7afb1f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(25.000030517578125 * scale, 97.94886779785156 * scale); ctx.bezierCurveTo(2.000030517578125 * scale, 76.94886779785156 * scale, 29.000030517578125 * scale, 62.94886779785156 * scale, 44.000030517578125 * scale, 59.94886779785156 * scale); ctx.bezierCurveTo(8.000030517578125 * scale, 59.94886779785156 * scale, -0.999969482421875 * scale, 81.94886779785156 * scale, 4.000030517578125 * scale, 92.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[3]); //#9e793d #e6a448 ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(349.0000305175781 * scale, 100.94886779785156 * scale); ctx.bezierCurveTo(366.0000305175781 * scale, 82.94886779785156 * scale, 353.0000305175781 * scale, 76.94886779785156 * scale, 337.0000305175781 * scale, 67.94886779785156 * scale); ctx.bezierCurveTo(366.0000305175781 * scale, 69.94886779785156 * scale, 366.0000305175781 * scale, 83.94886779785156 * scale, 363.0000305175781 * scale, 101.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[2], color[3], 10 * scale); //#9e793d #e6a448 circle(ctx, 46.000030517578125 * scale, 137.5852279663086 * scale, 9.219544457292887 * scale); fill_path(ctx, color[4], color[5], 1 * scale); //#fcc856 #7afb1f circle(ctx, 308.0000305175781 * scale, 141.5852279663086 * scale, 8.54400374531753 * scale); fill_path(ctx, color[4], color[5], 1 * scale); //#fcc856 #7afb1f circle(ctx, 92.00003051757812 * scale, 149.58523559570312 * scale, 14.866068747318506 * scale); fill_path(ctx, color[4], color[5], 1 * scale); //#fcc856 #7afb1f circle(ctx, 262.0000305175781 * scale, 148.8579559326172 * scale, 15.620499351813308 * scale); fill_path(ctx, color[4], color[5], 1 * scale); //#fcc856 #7afb1f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(184.00003051757812 * scale, 68.85795593261719 * scale); ctx.bezierCurveTo(203.00003051757812 * scale, 108.85795593261719 * scale, 203.00003051757812 * scale, 108.85795593261719 * scale, 222.00003051757812 * scale, 148.8579559326172 * scale); ctx.bezierCurveTo(202.50003051757812 * scale, 177.8579559326172 * scale, 202.50003051757812 * scale, 177.8579559326172 * scale, 183.00003051757812 * scale, 206.8579559326172 * scale); ctx.bezierCurveTo(162.00003051757812 * scale, 178.8579559326172 * scale, 162.00003051757812 * scale, 178.8579559326172 * scale, 141.00003051757812 * scale, 150.8579559326172 * scale); ctx.closePath(); fill_path(ctx, color[4], color[5], 10 * scale); //#fcc856 #7afb1f ctx.beginPath(); ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.moveTo(183.00003051757812 * scale, 104.94886779785156 * scale); ctx.bezierCurveTo(192.50003051757812 * scale, 125.44886779785156 * scale, 192.50003051757812 * scale, 125.44886779785156 * scale, 202.00003051757812 * scale, 145.94886779785156 * scale); ctx.bezierCurveTo(192.00003051757812 * scale, 163.94886779785156 * scale, 192.00003051757812 * scale, 163.94886779785156 * scale, 182.00003051757812 * scale, 181.94886779785156 * scale); ctx.bezierCurveTo(172.50003051757812 * scale, 164.44886779785156 * scale, 172.50003051757812 * scale, 164.44886779785156 * scale, 163.00003051757812 * scale, 146.94886779785156 * scale); ctx.closePath(); fill_path(ctx, color[6]); //#fcc856 #7afb1f return can; } function create_background_market() { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); can.width = 460; can.height = 220; ctx.fillStyle = "#3a2a0d"; ctx.fillRect(0, 0, can.width, can.height); ctx.lineWidth = 4; ctx.beginPath(); ctx.strokeStyle = "#513810"; for (var y = 20; y < 220; y += 20) { ctx.moveTo(0, y); ctx.lineTo(460, y); ctx.closePath(); ctx.stroke(); } return can; } function create_gauges(scale) { var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); var w = 950 * scale; var gw = 180 * scale; var h = 50 * scale; var hg = 20 * scale; var gh = 240 * scale; var xw = 35 * scale; var yh = 1 * scale; var r = 4 * scale; var lw = 4 * scale; can.width = w; can.height = h; /* Draw background */ ctx.translate(0, 15 * scale); round_rect(ctx, xw, yh, gw, hg, r); fill_path(ctx, null, "#69A148", lw); var img = sprite[SPRITE.HEART_SYMBOL_HUD]; ctx.drawImage(img, 17, -8); ctx.translate(gh, 0); round_rect(ctx, xw, yh, gw, hg, r); fill_path(ctx, null, "#AF352A", lw); var img = sprite[SPRITE.FOOD_SYMBOL_HUD]; ctx.drawImage(img, 17, -9); ctx.translate(gh, 0); round_rect(ctx, xw, yh, gw, hg, r); fill_path(ctx, null, "#669BB1", lw); var img = sprite[SPRITE.COLD_SYMBOL_HUD]; ctx.drawImage(img, 17, -8); ctx.translate(gh, 0); round_rect(ctx, xw, yh, gw, hg, r); fill_path(ctx, null, "#074A87", lw); var img = sprite[SPRITE.WATER_SYMBOL_HUD]; ctx.drawImage(img, 17, -8); return can; } function _load_images() { var TIMEDEBUG = new window.Date().getTime(); render_cosmetics(); /* River */ function codeToTile(code) { var tile = 0; for (var i = 0, j = 0; i < code.length; i++) { var c = code.charAt(i); if (c === "_" || i === 5) continue; if (c === "1") tile += window.Math.pow(2, j); j++; } return tile; } sprite[SPRITE.RIVER_WAVE] = [IMAGES.RIVER_WAVED, IMAGES.RIVER_WAVEN]; sprite[SPRITE.RIVER_DECO] = []; sprite[SPRITE.RIVER_DECO][SPRITE.DAY] = []; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_010_000")] = [IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_010_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_010_000")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_011_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_010_000")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_011_010")] = [IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_011_011")] = [IMAGES.DAY_RIVER_COMPO4, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_110_000")] = [IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_110_010")] = [IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO27]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_110_110")] = [IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO8, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO27]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_111_000")] = [IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_111_111")] = [IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO4, IMAGES.DAY_RIVER_COMPO13]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_010_000")] = [IMAGES.DAY_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_010_010")] = [IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_011_000")] = [IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO26]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_000")] = [IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")] = [IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_011_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_011_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_111_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_111_111")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("000_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_011_000")] = [IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO26]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_011_010")] = [IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_011_011")] = [IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO4, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO15]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_011_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_010")] = [IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("011_111_111")] = [IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO4, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_110_000")] = [IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO12, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_110_010")] = [IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_110_110")] = [IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_000")] = [IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO12, IMAGES.DAY_RIVER_COMPO14, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_110")] = [IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO14, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_111")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_110")] = [IMAGES.DAY_RIVER_COMPO28, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO14, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO1]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_000")] = [IMAGES.DAY_RIVER_COMPO12, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO14]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_111")] = [IMAGES.DAY_RIVER_COMPO1, IMAGES.DAY_RIVER_COMPO2, IMAGES.DAY_RIVER_COMPO3, IMAGES.DAY_RIVER_COMPO4, IMAGES.DAY_RIVER_COMPO5, IMAGES.DAY_RIVER_COMPO6, IMAGES.DAY_RIVER_COMPO7, IMAGES.DAY_RIVER_COMPO9, IMAGES.DAY_RIVER_COMPO10, IMAGES.DAY_RIVER_COMPO11, IMAGES.DAY_RIVER_COMPO13, IMAGES.DAY_RIVER_COMPO15, IMAGES.DAY_RIVER_COMPO16, IMAGES.DAY_RIVER_COMPO17, IMAGES.DAY_RIVER_COMPO18, IMAGES.DAY_RIVER_COMPO19, IMAGES.DAY_RIVER_COMPO20, IMAGES.DAY_RIVER_COMPO21, IMAGES.DAY_RIVER_COMPO22, IMAGES.DAY_RIVER_COMPO23, IMAGES.DAY_RIVER_COMPO24, IMAGES.DAY_RIVER_COMPO25, IMAGES.DAY_RIVER_COMPO26, IMAGES.DAY_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.DAY][codeToTile("111_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT] = []; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_010_000")] = [IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_010_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_010_000")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_011_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_010_000")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_011_010")] = [IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_011_011")] = [IMAGES.NIGHT_RIVER_COMPO4, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_110_000")] = [IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_110_010")] = [IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO27]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_110_110")] = [IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO8, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO27]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_111_000")] = [IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_111_111")] = [IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO4, IMAGES.NIGHT_RIVER_COMPO13]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_010_000")] = [IMAGES.NIGHT_RIVER_COMPO20]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_010_010")] = [IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_011_000")] = [IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO26]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_000")] = [IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")] = [IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_011_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_011_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_111_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_111_111")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("000_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("010_110_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_011_000")] = [IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO26]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_011_010")] = [IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_011_011")] = [IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO4, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO15]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_000")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_011_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_010")] = [IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_110")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_010")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("011_111_111")] = [IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO4, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_110_000")] = [IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO12, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_110_010")] = [IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_110_110")] = [IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_000")] = [IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO12, IMAGES.NIGHT_RIVER_COMPO14, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_110")] = [IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO14, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_111")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("110_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_110")] = [IMAGES.NIGHT_RIVER_COMPO28, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO14, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO1]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_011")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_110")]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_000")] = [IMAGES.NIGHT_RIVER_COMPO12, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO14]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_111")] = [IMAGES.NIGHT_RIVER_COMPO1, IMAGES.NIGHT_RIVER_COMPO2, IMAGES.NIGHT_RIVER_COMPO3, IMAGES.NIGHT_RIVER_COMPO4, IMAGES.NIGHT_RIVER_COMPO5, IMAGES.NIGHT_RIVER_COMPO6, IMAGES.NIGHT_RIVER_COMPO7, IMAGES.NIGHT_RIVER_COMPO9, IMAGES.NIGHT_RIVER_COMPO10, IMAGES.NIGHT_RIVER_COMPO11, IMAGES.NIGHT_RIVER_COMPO13, IMAGES.NIGHT_RIVER_COMPO15, IMAGES.NIGHT_RIVER_COMPO16, IMAGES.NIGHT_RIVER_COMPO17, IMAGES.NIGHT_RIVER_COMPO18, IMAGES.NIGHT_RIVER_COMPO19, IMAGES.NIGHT_RIVER_COMPO20, IMAGES.NIGHT_RIVER_COMPO21, IMAGES.NIGHT_RIVER_COMPO22, IMAGES.NIGHT_RIVER_COMPO23, IMAGES.NIGHT_RIVER_COMPO24, IMAGES.NIGHT_RIVER_COMPO25, IMAGES.NIGHT_RIVER_COMPO26, IMAGES.NIGHT_RIVER_COMPO28]; sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_010")] = sprite[SPRITE.RIVER_DECO][SPRITE.NIGHT][codeToTile("111_111_110")]; // RIVER SPRITE sprite[SPRITE.RIVER] = []; sprite[SPRITE.RIVER][SPRITE.DAY] = []; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_010_000")] = IMAGES.DAY_RIVER_000_010_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_010_010")] = IMAGES.DAY_RIVER_000_010_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_011_000")] = IMAGES.DAY_RIVER_000_011_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_011_010")] = IMAGES.DAY_RIVER_000_011_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_011_011")] = IMAGES.DAY_RIVER_000_011_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_110_000")] = IMAGES.DAY_RIVER_000_110_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_110_010")] = IMAGES.DAY_RIVER_000_110_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_110_110")] = IMAGES.DAY_RIVER_000_110_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_111_000")] = IMAGES.DAY_RIVER_000_111_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_111_010")] = IMAGES.DAY_RIVER_000_111_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_111_011")] = IMAGES.DAY_RIVER_000_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_111_110")] = IMAGES.DAY_RIVER_000_111_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("000_111_111")] = IMAGES.DAY_RIVER_000_111_111; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_010_000")] = IMAGES.DAY_RIVER_010_010_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_010_010")] = IMAGES.DAY_RIVER_010_010_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_011_000")] = IMAGES.DAY_RIVER_010_011_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_011_010")] = IMAGES.DAY_RIVER_010_011_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_011_011")] = IMAGES.DAY_RIVER_010_011_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_110_000")] = IMAGES.DAY_RIVER_010_110_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_110_010")] = IMAGES.DAY_RIVER_010_110_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_110_110")] = IMAGES.DAY_RIVER_010_110_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_111_000")] = IMAGES.DAY_RIVER_010_111_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_111_010")] = IMAGES.DAY_RIVER_010_111_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_111_011")] = IMAGES.DAY_RIVER_010_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_111_110")] = IMAGES.DAY_RIVER_010_111_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("010_111_111")] = IMAGES.DAY_RIVER_010_111_111; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_011_000")] = IMAGES.DAY_RIVER_011_011_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_011_010")] = IMAGES.DAY_RIVER_011_011_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_011_011")] = IMAGES.DAY_RIVER_011_011_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_111_000")] = IMAGES.DAY_RIVER_011_111_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_111_010")] = IMAGES.DAY_RIVER_011_111_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_111_011")] = IMAGES.DAY_RIVER_011_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_111_110")] = IMAGES.DAY_RIVER_011_111_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("011_111_111")] = IMAGES.DAY_RIVER_011_111_111; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_110_000")] = IMAGES.DAY_RIVER_110_110_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_110_010")] = IMAGES.DAY_RIVER_110_110_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_110_110")] = IMAGES.DAY_RIVER_110_110_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_111_000")] = IMAGES.DAY_RIVER_110_111_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_111_010")] = IMAGES.DAY_RIVER_110_111_010; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_111_011")] = IMAGES.DAY_RIVER_110_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_111_110")] = IMAGES.DAY_RIVER_110_111_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("110_111_111")] = IMAGES.DAY_RIVER_110_111_111; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_011")] = IMAGES.DAY_RIVER_111_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_110")] = IMAGES.DAY_RIVER_111_111_110; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_011")] = IMAGES.DAY_RIVER_111_111_011; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_000")] = IMAGES.DAY_RIVER_111_111_000; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_111")] = IMAGES.DAY_RIVER_111_111_111; sprite[SPRITE.RIVER][SPRITE.DAY][codeToTile("111_111_010")] = IMAGES.DAY_RIVER_111_111_010; sprite[SPRITE.RIVER][SPRITE.NIGHT] = []; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_010_000")] = IMAGES.NIGHT_RIVER_000_010_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_010_010")] = IMAGES.NIGHT_RIVER_000_010_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_011_000")] = IMAGES.NIGHT_RIVER_000_011_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_011_010")] = IMAGES.NIGHT_RIVER_000_011_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_011_011")] = IMAGES.NIGHT_RIVER_000_011_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_110_000")] = IMAGES.NIGHT_RIVER_000_110_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_110_010")] = IMAGES.NIGHT_RIVER_000_110_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_110_110")] = IMAGES.NIGHT_RIVER_000_110_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_111_000")] = IMAGES.NIGHT_RIVER_000_111_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_111_010")] = IMAGES.NIGHT_RIVER_000_111_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_111_011")] = IMAGES.NIGHT_RIVER_000_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_111_110")] = IMAGES.NIGHT_RIVER_000_111_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("000_111_111")] = IMAGES.NIGHT_RIVER_000_111_111; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_010_000")] = IMAGES.NIGHT_RIVER_010_010_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_010_010")] = IMAGES.NIGHT_RIVER_010_010_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_011_000")] = IMAGES.NIGHT_RIVER_010_011_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_011_010")] = IMAGES.NIGHT_RIVER_010_011_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_011_011")] = IMAGES.NIGHT_RIVER_010_011_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_110_000")] = IMAGES.NIGHT_RIVER_010_110_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_110_010")] = IMAGES.NIGHT_RIVER_010_110_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_110_110")] = IMAGES.NIGHT_RIVER_010_110_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_111_000")] = IMAGES.NIGHT_RIVER_010_111_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_111_010")] = IMAGES.NIGHT_RIVER_010_111_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_111_011")] = IMAGES.NIGHT_RIVER_010_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_111_110")] = IMAGES.NIGHT_RIVER_010_111_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("010_111_111")] = IMAGES.NIGHT_RIVER_010_111_111; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_011_000")] = IMAGES.NIGHT_RIVER_011_011_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_011_010")] = IMAGES.NIGHT_RIVER_011_011_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_011_011")] = IMAGES.NIGHT_RIVER_011_011_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_111_000")] = IMAGES.NIGHT_RIVER_011_111_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_111_010")] = IMAGES.NIGHT_RIVER_011_111_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_111_011")] = IMAGES.NIGHT_RIVER_011_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_111_110")] = IMAGES.NIGHT_RIVER_011_111_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("011_111_111")] = IMAGES.NIGHT_RIVER_011_111_111; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_110_000")] = IMAGES.NIGHT_RIVER_110_110_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_110_010")] = IMAGES.NIGHT_RIVER_110_110_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_110_110")] = IMAGES.NIGHT_RIVER_110_110_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_111_000")] = IMAGES.NIGHT_RIVER_110_111_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_111_010")] = IMAGES.NIGHT_RIVER_110_111_010; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_111_011")] = IMAGES.NIGHT_RIVER_110_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_111_110")] = IMAGES.NIGHT_RIVER_110_111_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("110_111_111")] = IMAGES.NIGHT_RIVER_110_111_111; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_011")] = IMAGES.NIGHT_RIVER_111_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_110")] = IMAGES.NIGHT_RIVER_111_111_110; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_011")] = IMAGES.NIGHT_RIVER_111_111_011; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_000")] = IMAGES.NIGHT_RIVER_111_111_000; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_111")] = IMAGES.NIGHT_RIVER_111_111_111; sprite[SPRITE.RIVER][SPRITE.NIGHT][codeToTile("111_111_010")] = IMAGES.NIGHT_RIVER_111_111_010; sprite[ItemType.REIDITE_PICK] = []; sprite[ItemType.REIDITE_PICK][SPRITE.DAY] = IMAGES.PICK_REIDITED; sprite[ItemType.REIDITE_PICK][SPRITE.NIGHT] = IMAGES.PICK_REIDITEN; sprite[ItemType.CARROT] = []; sprite[ItemType.CARROT][SPRITE.DAY] = IMAGES.CARROTD; sprite[ItemType.CARROT][SPRITE.NIGHT] = IMAGES.CARROTN; sprite[SPRITE.TOMATO_MINI] = []; sprite[SPRITE.TOMATO_MINI][SPRITE.DAY] = IMAGES.TOMATO_MINID; sprite[SPRITE.TOMATO_MINI][SPRITE.NIGHT] = IMAGES.TOMATO_MININ; sprite[ItemType.TOMATO] = []; sprite[ItemType.TOMATO][SPRITE.DAY] = IMAGES.TOMATOD; sprite[ItemType.TOMATO][SPRITE.NIGHT] = IMAGES.TOMATON; sprite[SPRITE.DRIED_CARROT] = []; sprite[SPRITE.DRIED_CARROT][SPRITE.DAY] = IMAGES.CARROT_DRIEDD; sprite[SPRITE.DRIED_CARROT][SPRITE.NIGHT] = IMAGES.CARROT_DRIEDN; sprite[SPRITE.DRIED_TOMATO_MINI] = []; sprite[SPRITE.DRIED_TOMATO_MINI][SPRITE.DAY] = IMAGES.TOMATO_MINI_DRIEDD; sprite[SPRITE.DRIED_TOMATO_MINI][SPRITE.NIGHT] = IMAGES.TOMATO_MINI_DRIEDN; sprite[ItemType.WATERMELON] = []; sprite[ItemType.WATERMELON][SPRITE.DAY] = IMAGES.WATERMELOND; sprite[ItemType.WATERMELON][SPRITE.NIGHT] = IMAGES.WATERMELONN; sprite[SPRITE.DRIED_WATERMELON] = []; sprite[SPRITE.DRIED_WATERMELON][SPRITE.DAY] = IMAGES.DRIED_WATERMELOND; sprite[SPRITE.DRIED_WATERMELON][SPRITE.NIGHT] = IMAGES.DRIED_WATERMELONN; sprite[ItemType.ALOE_VERA] = []; sprite[ItemType.ALOE_VERA][SPRITE.DAY] = IMAGES.ALOE_VERA_GROWND; sprite[ItemType.ALOE_VERA][SPRITE.NIGHT] = IMAGES.ALOE_VERA_GROWNN; sprite[SPRITE.DRIED_ALOE_VERA] = []; sprite[SPRITE.DRIED_ALOE_VERA][SPRITE.DAY] = IMAGES.ALOE_VERA_DRIEDD; sprite[SPRITE.DRIED_ALOE_VERA][SPRITE.NIGHT] = IMAGES.ALOE_VERAN_DRIEDN; sprite[SPRITE.CACTUS] = []; sprite[SPRITE.CACTUS][SPRITE.DAY] = [IMAGES.CACTUSD]; sprite[SPRITE.CACTUS][SPRITE.NIGHT] = [IMAGES.CACTUSN]; (sprite[ItemType.REIDITE_WALL] = []), (sprite[ItemType.REIDITE_WALL][SPRITE.DAY] = IMAGES.REIDITE_WALLD); sprite[ItemType.REIDITE_WALL][SPRITE.NIGHT] = IMAGES.REIDITE_WALLN; (sprite[ItemType.REIDITE_SPIKE] = []), (sprite[ItemType.REIDITE_SPIKE][SPRITE.DAY] = IMAGES.REIDITE_SPIKED); sprite[ItemType.REIDITE_SPIKE][SPRITE.NIGHT] = IMAGES.REIDITE_SPIKEN; sprite[ItemType.REIDITE_DOOR] = []; sprite[ItemType.REIDITE_DOOR][SPRITE.DAY] = IMAGES.REIDITE_DOORD; sprite[ItemType.REIDITE_DOOR][SPRITE.NIGHT] = IMAGES.REIDITE_DOORN; //DOOR_SPIKES sprite[ItemType.WOOD_DOOR_SPIKE] = []; sprite[ItemType.WOOD_DOOR_SPIKE][SPRITE.DAY] = IMAGES.WOOD_DOOR_SPIKED; sprite[ItemType.WOOD_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.WOOD_DOOR_SPIKEN; sprite[ItemType.STONE_DOOR_SPIKE] = []; sprite[ItemType.STONE_DOOR_SPIKE][SPRITE.DAY] = IMAGES.STONE_DOOR_SPIKED; sprite[ItemType.STONE_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.STONE_DOOR_SPIKEN; sprite[ItemType.GOLD_DOOR_SPIKE] = []; sprite[ItemType.GOLD_DOOR_SPIKE][SPRITE.DAY] = IMAGES.GOLD_DOOR_SPIKED; sprite[ItemType.GOLD_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.GOLD_DOOR_SPIKEN; sprite[ItemType.DIAMOND_DOOR_SPIKE] = []; sprite[ItemType.DIAMOND_DOOR_SPIKE][SPRITE.DAY] = IMAGES.DIAMOND_DOOR_SPIKED; sprite[ItemType.DIAMOND_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.DIAMOND_DOOR_SPIKEN; sprite[ItemType.AMETHYST_DOOR_SPIKE] = []; sprite[ItemType.AMETHYST_DOOR_SPIKE][SPRITE.DAY] = IMAGES.AMETHYST_DOOR_SPIKED; sprite[ItemType.AMETHYST_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.AMETHYST_DOOR_SPIKEN; sprite[ItemType.REIDITE_DOOR_SPIKE] = []; sprite[ItemType.REIDITE_DOOR_SPIKE][SPRITE.DAY] = IMAGES.REIDITE_DOOR_SPIKED; sprite[ItemType.REIDITE_DOOR_SPIKE][SPRITE.NIGHT] = IMAGES.REIDITE_DOOR_SPIKEN; sprite[SPRITE.GOLDEN_HEN] = []; sprite[SPRITE.GOLDEN_HEN][SPRITE.DAY] = IMAGES.HEND; sprite[SPRITE.GOLDEN_HEN][SPRITE.NIGHT] = IMAGES.HENN; sprite[SPRITE.GOLDEN_CHICKEN] = []; sprite[SPRITE.GOLDEN_CHICKEN][SPRITE.DAY] = IMAGES.CHICKEND; sprite[SPRITE.GOLDEN_CHICKEN][SPRITE.NIGHT] = IMAGES.CHICKENN; sprite[ItemType.REIDITE_HAMMER] = []; sprite[ItemType.REIDITE_HAMMER][SPRITE.DAY] = IMAGES.HAMMER_REIDITED; sprite[ItemType.REIDITE_HAMMER][SPRITE.NIGHT] = IMAGES.HAMMER_REIDITEN; sprite[SPRITE.HURT_GOLDEN_HEN] = IMAGES.HURT_GOLDEN_HEN; sprite[SPRITE.HURT_GOLDEN_CHICKEN] = IMAGES.HURT_GOLDEN_CHICKEN; sprite[SPRITE.FOG] = []; sprite[SPRITE.FOG][SPRITE.DAY] = []; sprite[SPRITE.FOG][SPRITE.NIGHT] = []; sprite[SPRITE.FOG][SPRITE.DAY].push(IMAGES.FOG0D); sprite[SPRITE.FOG][SPRITE.DAY].push(IMAGES.FOG1D); sprite[SPRITE.FOG][SPRITE.DAY].push(IMAGES.FOG2D); sprite[SPRITE.FOG][SPRITE.NIGHT].push(IMAGES.FOG0N); sprite[SPRITE.FOG][SPRITE.NIGHT].push(IMAGES.FOG1N); sprite[SPRITE.FOG][SPRITE.NIGHT].push(IMAGES.FOG2N); sprite[SPRITE.FOD] = []; sprite[SPRITE.FOD][SPRITE.DAY] = []; sprite[SPRITE.FOD][SPRITE.NIGHT] = []; sprite[SPRITE.FOD][SPRITE.DAY].push(IMAGES.FOD0D); sprite[SPRITE.FOD][SPRITE.DAY].push(IMAGES.FOD1D); sprite[SPRITE.FOD][SPRITE.DAY].push(IMAGES.FOD2D); sprite[SPRITE.FOD][SPRITE.NIGHT].push(IMAGES.FOD0N); sprite[SPRITE.FOD][SPRITE.NIGHT].push(IMAGES.FOD1N); sprite[SPRITE.FOD][SPRITE.NIGHT].push(IMAGES.FOD2N); sprite[SPRITE.MARKER] = []; sprite[SPRITE.MARKER][SPRITE.DAY] = []; sprite[SPRITE.MARKER][SPRITE.NIGHT] = []; sprite[SPRITE.MARKER][SPRITE.DAY].push(IMAGES.MARKER0D); sprite[SPRITE.MARKER][SPRITE.DAY].push(IMAGES.MARKER1D); sprite[SPRITE.MARKER][SPRITE.DAY].push(IMAGES.MARKER2D); sprite[SPRITE.MARKER][SPRITE.DAY].push(IMAGES.MARKER3D); sprite[SPRITE.MARKER][SPRITE.NIGHT].push(IMAGES.MARKER0N); sprite[SPRITE.MARKER][SPRITE.NIGHT].push(IMAGES.MARKER1N); sprite[SPRITE.MARKER][SPRITE.NIGHT].push(IMAGES.MARKER2N); sprite[SPRITE.MARKER][SPRITE.NIGHT].push(IMAGES.MARKER3N); sprite[SPRITE.LAVA_DRAGON] = []; sprite[SPRITE.LAVA_DRAGON][SPRITE.DAY] = IMAGES.LAVA_DRAGOND; sprite[SPRITE.LAVA_DRAGON][SPRITE.NIGHT] = IMAGES.LAVA_DRAGONN; sprite[SPRITE.LAVA_WING_LEFT] = []; sprite[SPRITE.LAVA_WING_LEFT][SPRITE.DAY] = IMAGES.LAVA_WING_LEFTD; sprite[SPRITE.LAVA_WING_LEFT][SPRITE.NIGHT] = IMAGES.LAVA_WING_LEFTN; sprite[SPRITE.LAVA_WING_RIGHT] = []; sprite[SPRITE.LAVA_WING_RIGHT][SPRITE.DAY] = IMAGES.LAVA_WING_RIGHTD; sprite[SPRITE.LAVA_WING_RIGHT][SPRITE.NIGHT] = IMAGES.LAVA_WING_RIGHTN; sprite[SPRITE.HURT_LAVA_DRAGON] = IMAGES.HURT_LAVA_DRAGON; sprite[SPRITE.HURT_LAVA_WING_LEFT] = IMAGES.HURT_LAVA_WING_LEFT; sprite[SPRITE.HURT_LAVA_WING_RIGHT] = IMAGES.HURT_LAVA_WING_RIGHT; sprite[ItemType.DIAMOND_PROTECTION] = []; sprite[ItemType.DIAMOND_PROTECTION][SPRITE.DAY] = IMAGES.DIAMOND_PROTECTIOND; sprite[ItemType.DIAMOND_PROTECTION][SPRITE.NIGHT] = IMAGES.DIAMOND_PROTECTIONN; sprite[SPRITE.GLOVES_DIAMOND_PROTECTION] = []; sprite[SPRITE.GLOVES_DIAMOND_PROTECTION][SPRITE.DAY] = IMAGES.HAND_DIAMOND_PROTECTIOND; sprite[SPRITE.GLOVES_DIAMOND_PROTECTION][SPRITE.NIGHT] = IMAGES.HAND_DIAMOND_PROTECTIONN; sprite[ItemType.AMETHYST_PROTECTION] = []; sprite[ItemType.AMETHYST_PROTECTION][SPRITE.DAY] = IMAGES.AMETHYST_PROTECTIOND; sprite[ItemType.AMETHYST_PROTECTION][SPRITE.NIGHT] = IMAGES.AMETHYST_PROTECTIONN; sprite[SPRITE.GLOVES_AMETHYST_PROTECTION] = []; sprite[SPRITE.GLOVES_AMETHYST_PROTECTION][SPRITE.DAY] = IMAGES.HAND_DIAMOND_PROTECTIOND; sprite[SPRITE.GLOVES_AMETHYST_PROTECTION][SPRITE.NIGHT] = IMAGES.HAND_DIAMOND_PROTECTIONN; sprite[ItemType.REIDITE_HELMET] = []; sprite[ItemType.REIDITE_HELMET][SPRITE.DAY] = IMAGES.REIDITE_HELMETD; sprite[ItemType.REIDITE_HELMET][SPRITE.NIGHT] = IMAGES.REIDITE_HELMETN; sprite[ItemType.REIDITE_SWORD] = []; sprite[ItemType.REIDITE_SWORD][SPRITE.DAY] = IMAGES.REIDITE_SWORDD; sprite[ItemType.REIDITE_SWORD][SPRITE.NIGHT] = IMAGES.REIDITE_SWORDN; sprite[ItemType.REIDITE_SPEAR] = []; sprite[ItemType.REIDITE_SPEAR][SPRITE.DAY] = IMAGES.REIDITE_SPEARD; sprite[ItemType.REIDITE_SPEAR][SPRITE.NIGHT] = IMAGES.REIDITE_SPEARN; sprite[ItemType.LAVA_SPEAR] = []; sprite[ItemType.LAVA_SPEAR][SPRITE.DAY] = IMAGES.LAVA_SPEARD; sprite[ItemType.LAVA_SPEAR][SPRITE.NIGHT] = IMAGES.LAVA_SPEARN; sprite[ItemType.LAVA_SWORD] = []; sprite[ItemType.LAVA_SWORD][SPRITE.DAY] = IMAGES.LAVA_SWORDD; sprite[ItemType.LAVA_SWORD][SPRITE.NIGHT] = IMAGES.LAVA_SWORDN; sprite[ItemType.LAVA_HELMET] = []; sprite[ItemType.LAVA_HELMET][SPRITE.DAY] = IMAGES.LAVA_HELMETD; sprite[ItemType.LAVA_HELMET][SPRITE.NIGHT] = IMAGES.LAVA_HELMETN; sprite[ItemType.WITCH_HAT] = []; sprite[ItemType.WITCH_HAT][SPRITE.DAY] = IMAGES.WITCHD; sprite[ItemType.WITCH_HAT][SPRITE.NIGHT] = IMAGES.WITCHN; sprite[ItemType.NIMBUS] = []; sprite[ItemType.NIMBUS][SPRITE.DAY] = IMAGES.NIMBUSD; sprite[ItemType.NIMBUS][SPRITE.NIGHT] = IMAGES.NIMBUSN; sprite[ItemType.WOOD_SHIELD] = []; sprite[ItemType.WOOD_SHIELD][SPRITE.DAY] = IMAGES.WOOD_SHIELDD; sprite[ItemType.WOOD_SHIELD][SPRITE.NIGHT] = IMAGES.WOOD_SHIELDN; sprite[ItemType.STONE_SHIELD] = []; sprite[ItemType.STONE_SHIELD][SPRITE.DAY] = IMAGES.STONE_SHIELDD; sprite[ItemType.STONE_SHIELD][SPRITE.NIGHT] = IMAGES.STONE_SHIELDN; sprite[ItemType.GOLD_SHIELD] = []; sprite[ItemType.GOLD_SHIELD][SPRITE.DAY] = IMAGES.GOLD_SHIELDD; sprite[ItemType.GOLD_SHIELD][SPRITE.NIGHT] = IMAGES.GOLD_SHIELDN; sprite[ItemType.DIAMOND_SHIELD] = []; sprite[ItemType.DIAMOND_SHIELD][SPRITE.DAY] = IMAGES.DIAMOND_SHIELDD; sprite[ItemType.DIAMOND_SHIELD][SPRITE.NIGHT] = IMAGES.DIAMOND_SHIELDN; sprite[ItemType.AMETHYST_SHIELD] = []; sprite[ItemType.AMETHYST_SHIELD][SPRITE.DAY] = IMAGES.AMETHYST_SHIELDD; sprite[ItemType.AMETHYST_SHIELD][SPRITE.NIGHT] = IMAGES.AMETHYST_SHIELDN; sprite[ItemType.REIDITE_SHIELD] = []; sprite[ItemType.REIDITE_SHIELD][SPRITE.DAY] = IMAGES.REIDITE_SHIELDD; sprite[ItemType.REIDITE_SHIELD][SPRITE.NIGHT] = IMAGES.REIDITE_SHIELDN; sprite[ItemType.WOOD_ARROW] = []; sprite[ItemType.WOOD_ARROW][SPRITE.DAY] = IMAGES.WOOD_ARROWD; sprite[ItemType.WOOD_ARROW][SPRITE.NIGHT] = IMAGES.WOOD_ARROWN; sprite[ItemType.WOOD_BOW] = []; sprite[ItemType.WOOD_BOW][SPRITE.DAY] = IMAGES.WOOD_BOWD; sprite[ItemType.WOOD_BOW][SPRITE.NIGHT] = IMAGES.WOOD_BOWN; sprite[ItemType.STONE_ARROW] = []; sprite[ItemType.STONE_ARROW][SPRITE.DAY] = IMAGES.STONE_ARROWD; sprite[ItemType.STONE_ARROW][SPRITE.NIGHT] = IMAGES.STONE_ARROWN; sprite[ItemType.STONE_BOW] = []; sprite[ItemType.STONE_BOW][SPRITE.DAY] = IMAGES.STONE_BOWD; sprite[ItemType.STONE_BOW][SPRITE.NIGHT] = IMAGES.STONE_BOWN; sprite[ItemType.GOLD_ARROW] = []; sprite[ItemType.GOLD_ARROW][SPRITE.DAY] = IMAGES.GOLD_ARROWD; sprite[ItemType.GOLD_ARROW][SPRITE.NIGHT] = IMAGES.GOLD_ARROWN; sprite[ItemType.GOLD_BOW] = []; sprite[ItemType.GOLD_BOW][SPRITE.DAY] = IMAGES.GOLD_BOWD; sprite[ItemType.GOLD_BOW][SPRITE.NIGHT] = IMAGES.GOLD_BOWN; sprite[ItemType.DIAMOND_ARROW] = []; sprite[ItemType.DIAMOND_ARROW][SPRITE.DAY] = IMAGES.DIAMOND_ARROWD; sprite[ItemType.DIAMOND_ARROW][SPRITE.NIGHT] = IMAGES.DIAMOND_ARROWN; sprite[ItemType.DIAMOND_BOW] = []; sprite[ItemType.DIAMOND_BOW][SPRITE.DAY] = IMAGES.DIAMOND_BOWD; sprite[ItemType.DIAMOND_BOW][SPRITE.NIGHT] = IMAGES.DIAMOND_BOWN; sprite[ItemType.AMETHYST_ARROW] = []; sprite[ItemType.AMETHYST_ARROW][SPRITE.DAY] = IMAGES.AMETHYST_ARROWD; sprite[ItemType.AMETHYST_ARROW][SPRITE.NIGHT] = IMAGES.AMETHYST_ARROWN; sprite[ItemType.AMETHYST_BOW] = []; sprite[ItemType.AMETHYST_BOW][SPRITE.DAY] = IMAGES.AMETHYST_BOWD; sprite[ItemType.AMETHYST_BOW][SPRITE.NIGHT] = IMAGES.AMETHYST_BOWN; sprite[ItemType.REIDITE_ARROW] = []; sprite[ItemType.REIDITE_ARROW][SPRITE.DAY] = IMAGES.REIDITE_ARROWD; sprite[ItemType.REIDITE_ARROW][SPRITE.NIGHT] = IMAGES.REIDITE_ARROWN; sprite[ItemType.REIDITE_BOW] = []; sprite[ItemType.REIDITE_BOW][SPRITE.DAY] = IMAGES.REIDITE_BOWD; sprite[ItemType.REIDITE_BOW][SPRITE.NIGHT] = IMAGES.REIDITE_BOWN; sprite[ItemType.DRAGON_ARROW] = []; sprite[ItemType.DRAGON_ARROW][SPRITE.DAY] = IMAGES.DRAGON_ARROWD; sprite[ItemType.DRAGON_ARROW][SPRITE.NIGHT] = IMAGES.DRAGON_ARROWN; sprite[ItemType.DRAGON_BOW] = []; sprite[ItemType.DRAGON_BOW][SPRITE.DAY] = IMAGES.DRAGON_BOWD; sprite[ItemType.DRAGON_BOW][SPRITE.NIGHT] = IMAGES.DRAGON_BOWN; sprite[ItemType.TURBAN1] = []; sprite[ItemType.TURBAN1][SPRITE.DAY] = IMAGES.TURBAN1D; sprite[ItemType.TURBAN1][SPRITE.NIGHT] = IMAGES.TURBAN1N; sprite[ItemType.TURBAN2] = []; sprite[ItemType.TURBAN2][SPRITE.DAY] = IMAGES.TURBAN2D; sprite[ItemType.TURBAN2][SPRITE.NIGHT] = IMAGES.TURBAN2N; sprite[ItemType.REIDITE_PROTECTION] = []; sprite[ItemType.REIDITE_PROTECTION][SPRITE.DAY] = IMAGES.REIDITE_PROTECTIOND; sprite[ItemType.REIDITE_PROTECTION][SPRITE.NIGHT] = IMAGES.REIDITE_PROTECTIONN; sprite[SPRITE.GLOVES_REIDITE_PROTECTION] = []; sprite[SPRITE.GLOVES_REIDITE_PROTECTION][SPRITE.DAY] = IMAGES.HAND_REIDITE_PROTECTIOND; sprite[SPRITE.GLOVES_REIDITE_PROTECTION][SPRITE.NIGHT] = IMAGES.HAND_REIDITE_PROTECTIONN; sprite[SPRITE.LAVA_BUBBLE] = []; sprite[SPRITE.LAVA_BUBBLE][SPRITE.DAY] = []; sprite[SPRITE.LAVA_BUBBLE][SPRITE.NIGHT] = []; sprite[SPRITE.LAVA_BUBBLE][SPRITE.DAY].push(IMAGES.LAVA_BUBLE0D); sprite[SPRITE.LAVA_BUBBLE][SPRITE.DAY].push(IMAGES.LAVA_BUBLE1D); sprite[SPRITE.LAVA_BUBBLE][SPRITE.DAY].push(IMAGES.LAVA_BUBLE2D); sprite[SPRITE.LAVA_BUBBLE][SPRITE.NIGHT].push(IMAGES.LAVA_BUBLE0N); sprite[SPRITE.LAVA_BUBBLE][SPRITE.NIGHT].push(IMAGES.LAVA_BUBLE1N); sprite[SPRITE.LAVA_BUBBLE][SPRITE.NIGHT].push(IMAGES.LAVA_BUBLE2N); sprite[ItemType.PITCHFORK] = []; sprite[ItemType.PITCHFORK][SPRITE.DAY] = IMAGES.PITCHFORKD; sprite[ItemType.PITCHFORK][SPRITE.NIGHT] = IMAGES.PITCHFORKN; sprite[ItemType.GOLD_PITCHFORK] = []; sprite[ItemType.GOLD_PITCHFORK][SPRITE.DAY] = IMAGES.PITCHFORK2D; sprite[ItemType.GOLD_PITCHFORK][SPRITE.NIGHT] = IMAGES.PITCHFORK2N; sprite[ItemType.EMERALD] = []; sprite[ItemType.EMERALD][SPRITE.DAY] = []; sprite[ItemType.EMERALD][SPRITE.NIGHT] = []; sprite[ItemType.EMERALD][SPRITE.DAY].push(IMAGES.EMERALD0D); sprite[ItemType.EMERALD][SPRITE.DAY].push(IMAGES.EMERALD1D); sprite[ItemType.EMERALD][SPRITE.DAY].push(IMAGES.EMERALD2D); sprite[ItemType.EMERALD][SPRITE.NIGHT].push(IMAGES.EMERALD0N); sprite[ItemType.EMERALD][SPRITE.NIGHT].push(IMAGES.EMERALD1N); sprite[ItemType.EMERALD][SPRITE.NIGHT].push(IMAGES.EMERALD2N); /* LAVA BIOME */ sprite[ItemType.REIDITE] = []; sprite[ItemType.REIDITE][SPRITE.DAY] = []; sprite[ItemType.REIDITE][SPRITE.NIGHT] = []; sprite[ItemType.REIDITE][SPRITE.DAY].push(IMAGES.REIDITE0D); sprite[ItemType.REIDITE][SPRITE.DAY].push(IMAGES.REIDITE1D); sprite[ItemType.REIDITE][SPRITE.DAY].push(IMAGES.REIDITE2D); sprite[ItemType.REIDITE][SPRITE.NIGHT].push(IMAGES.REIDITE0N); sprite[ItemType.REIDITE][SPRITE.NIGHT].push(IMAGES.REIDITE1N); sprite[ItemType.REIDITE][SPRITE.NIGHT].push(IMAGES.REIDITE2N); sprite[SPRITE.MAGMA] = []; sprite[SPRITE.MAGMA][SPRITE.DAY] = []; sprite[SPRITE.MAGMA][SPRITE.NIGHT] = []; sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA1D); sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA2D); sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA3D); sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA4D); sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA5D); sprite[SPRITE.MAGMA][SPRITE.DAY].push(IMAGES.MAGMA6D); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA1N); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA2N); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA3N); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA4N); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA5N); sprite[SPRITE.MAGMA][SPRITE.NIGHT].push(IMAGES.MAGMA6N); sprite[SPRITE.LAVA_GROUND] = []; sprite[SPRITE.LAVA_GROUND][SPRITE.DAY] = []; sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT] = []; sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND1D); sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND2D); sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND3D); sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND4D); sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND5D); sprite[SPRITE.LAVA_GROUND][SPRITE.DAY].push(IMAGES.LAVA_GROUND6D); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND1N); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND2N); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND3N); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND4N); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND5N); sprite[SPRITE.LAVA_GROUND][SPRITE.NIGHT].push(IMAGES.LAVA_GROUND6N); sprite[SPRITE.FIRE_MOB] = []; sprite[SPRITE.FIRE_MOB][SPRITE.DAY] = IMAGES.FIRE_MOBD; sprite[SPRITE.FIRE_MOB][SPRITE.NIGHT] = IMAGES.FIRE_MOBN; sprite[SPRITE.HURT_FIRE_MOB] = IMAGES.FIRE_MOB_HURT; sprite[ItemType.MACHETE] = []; sprite[ItemType.MACHETE][SPRITE.DAY] = IMAGES.MACHETED; sprite[ItemType.MACHETE][SPRITE.NIGHT] = IMAGES.MACHETEN; sprite[ItemType.BOAT] = []; sprite[ItemType.BOAT][SPRITE.DAY] = IMAGES.BOATD; sprite[ItemType.BOAT][SPRITE.NIGHT] = IMAGES.BOATN; sprite[ItemType.SLED] = []; sprite[ItemType.SLED][SPRITE.DAY] = IMAGES.SLEDD; sprite[ItemType.SLED][SPRITE.NIGHT] = IMAGES.SLEDN; sprite[ItemType.PLANE] = []; sprite[ItemType.PLANE][SPRITE.DAY] = IMAGES.PLANED; sprite[ItemType.PLANE][SPRITE.NIGHT] = IMAGES.PLANEN; sprite[SPRITE.PENGUIN] = []; sprite[SPRITE.PENGUIN][SPRITE.DAY] = IMAGES.PENGUIND; sprite[SPRITE.PENGUIN][SPRITE.NIGHT] = IMAGES.PENGUINN; sprite[SPRITE.HURT_PENGUIN] = IMAGES.HURT_PENGUIN; sprite[SPRITE.SAND_WORM1] = []; sprite[SPRITE.SAND_WORM1][SPRITE.DAY] = IMAGES.SAND_WORM1D; sprite[SPRITE.SAND_WORM1][SPRITE.NIGHT] = IMAGES.SAND_WORM1N; sprite[SPRITE.SAND_WORM2] = []; sprite[SPRITE.SAND_WORM2][SPRITE.DAY] = IMAGES.SAND_WORM2D; sprite[SPRITE.SAND_WORM2][SPRITE.NIGHT] = IMAGES.SAND_WORM2N; sprite[SPRITE.HURT_SAND_WORM0] = IMAGES.HURT_SAND_WORM0; sprite[SPRITE.HURT_SAND_WORM1] = IMAGES.HURT_SAND_WORM1; sprite[SPRITE.HURT_SAND_WORM2] = IMAGES.HURT_SAND_WORM2; sprite[SPRITE.SCORPION] = []; sprite[SPRITE.SCORPION][SPRITE.DAY] = IMAGES.SCORPIOND; sprite[SPRITE.SCORPION][SPRITE.NIGHT] = IMAGES.SCORPIONN; sprite[SPRITE.SCORPION_HAND_LEFT] = []; sprite[SPRITE.SCORPION_HAND_LEFT][SPRITE.DAY] = IMAGES.SCORPION_HAND_LEFTD; sprite[SPRITE.SCORPION_HAND_LEFT][SPRITE.NIGHT] = IMAGES.SCORPION_HAND_LEFTN; sprite[SPRITE.SCORPION_HAND_RIGHT] = []; sprite[SPRITE.SCORPION_HAND_RIGHT][SPRITE.DAY] = IMAGES.SCORPION_HAND_RIGHTD; sprite[SPRITE.SCORPION_HAND_RIGHT][SPRITE.NIGHT] = IMAGES.SCORPION_HAND_RIGHTN; sprite[SPRITE.HURT_SCORPION] = IMAGES.HURT_SCORPION; sprite[SPRITE.HURT_SCORPION_HAND_RIGHT] = IMAGES.HURT_SCORPION_HAND_RIGHT; sprite[SPRITE.HURT_SCORPION_HAND_LEFT] = IMAGES.HURT_SCORPION_HAND_LEFT; sprite[SPRITE.CRAB_BOSS_ATTACK] = []; sprite[SPRITE.CRAB_BOSS_ATTACK][SPRITE.DAY] = IMAGES.CRAB_BOSS_ATTACKD; sprite[SPRITE.CRAB_BOSS_ATTACK][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_ATTACKN; sprite[SPRITE.CRAB_BOSS_TAMED] = []; sprite[SPRITE.CRAB_BOSS_TAMED][SPRITE.DAY] = IMAGES.CRAB_BOSS_TAMEDD; sprite[SPRITE.CRAB_BOSS_TAMED][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_TAMEDN; sprite[SPRITE.CRAB_BOSS] = []; sprite[SPRITE.CRAB_BOSS][SPRITE.DAY] = IMAGES.CRAB_BOSSD; sprite[SPRITE.CRAB_BOSS][SPRITE.NIGHT] = IMAGES.CRAB_BOSSN; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT] = []; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT][SPRITE.DAY] = IMAGES.CRAB_BOSS_CLAW_LEFTD; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_CLAW_LEFTN; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT] = []; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT][SPRITE.DAY] = IMAGES.CRAB_BOSS_CLAW_RIGHTD; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_CLAW_RIGHTN; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT_ATTACK] = []; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT_ATTACK][SPRITE.DAY] = IMAGES.CRAB_BOSS_CLAW_LEFT_ATTACKD; sprite[SPRITE.CRAB_BOSS_CLAW_LEFT_ATTACK][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_CLAW_LEFT_ATTACKN; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT_ATTACK] = []; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT_ATTACK][SPRITE.DAY] = IMAGES.CRAB_BOSS_CLAW_RIGHT_ATTACKD; sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT_ATTACK][SPRITE.NIGHT] = IMAGES.CRAB_BOSS_CLAW_RIGHT_ATTACKN; sprite[SPRITE.HURT_CRAB_BOSS] = IMAGES.HURT_CRAB_BOSS; sprite[SPRITE.HURT_CRAB_BOSS_CLAW_LEFT] = IMAGES.HURT_CRAB_BOSS_CLAW_LEFT; sprite[SPRITE.HURT_CRAB_BOSS_CLAW_RIGHT] = IMAGES.HURT_CRAB_BOSS_CLAW_RIGHT; sprite[SPRITE.HEAL_CRAB_BOSS] = IMAGES.HEAL_CRAB_BOSS; sprite[SPRITE.HEAL_CRAB_BOSS_CLAW_LEFT] = IMAGES.HEAL_CRAB_BOSS_CLAW_LEFT; sprite[SPRITE.HEAL_CRAB_BOSS_CLAW_RIGHT] = IMAGES.HEAL_CRAB_BOSS_CLAW_RIGHT; sprite[SPRITE.BABY_MAMMOTH_ATTACK] = []; sprite[SPRITE.BABY_MAMMOTH_ATTACK][SPRITE.DAY] = IMAGES.BABY_MAMMOTH_ATTACKD; sprite[SPRITE.BABY_MAMMOTH_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_MAMMOTH_ATTACKN; sprite[SPRITE.BABY_MAMMOTH] = []; sprite[SPRITE.BABY_MAMMOTH][SPRITE.DAY] = IMAGES.BABY_MAMMOTHD; sprite[SPRITE.BABY_MAMMOTH][SPRITE.NIGHT] = IMAGES.BABY_MAMMOTHN; sprite[SPRITE.MAMMOTH] = []; sprite[SPRITE.MAMMOTH][SPRITE.DAY] = IMAGES.MAMMOTHD; sprite[SPRITE.MAMMOTH][SPRITE.NIGHT] = IMAGES.MAMMOTHN; sprite[SPRITE.BABY_MAMMOTH_TAMED] = []; sprite[SPRITE.BABY_MAMMOTH_TAMED][SPRITE.DAY] = IMAGES.BABY_MAMMOTH_TAMEDD; sprite[SPRITE.BABY_MAMMOTH_TAMED][SPRITE.NIGHT] = IMAGES.BABY_MAMMOTH_TAMEDN; sprite[SPRITE.HURT_BABY_MAMMOTH] = IMAGES.HURT_BABY_MAMMOTH; sprite[SPRITE.HURT_MAMMOTH] = IMAGES.HURT_MAMMOTH; sprite[SPRITE.BABY_DRAGON_ATTACK] = []; sprite[SPRITE.BABY_DRAGON_ATTACK][SPRITE.DAY] = IMAGES.BABY_DRAGON_ATTACKD; sprite[SPRITE.BABY_DRAGON_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_ATTACKN; sprite[SPRITE.BABY_DRAGON] = []; sprite[SPRITE.BABY_DRAGON][SPRITE.DAY] = IMAGES.BABY_DRAGOND; sprite[SPRITE.BABY_DRAGON][SPRITE.NIGHT] = IMAGES.BABY_DRAGONN; sprite[SPRITE.BABY_DRAGON_TAMED] = []; sprite[SPRITE.BABY_DRAGON_TAMED][SPRITE.DAY] = IMAGES.BABY_DRAGON_TAMEDD; sprite[SPRITE.BABY_DRAGON_TAMED][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_TAMEDN; sprite[SPRITE.BABY_DRAGON_WING_LEFT] = []; sprite[SPRITE.BABY_DRAGON_WING_LEFT][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_LEFTD; sprite[SPRITE.BABY_DRAGON_WING_LEFT][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_LEFTN; sprite[SPRITE.BABY_DRAGON_WING_RIGHT] = []; sprite[SPRITE.BABY_DRAGON_WING_RIGHT][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_RIGHTD; sprite[SPRITE.BABY_DRAGON_WING_RIGHT][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_RIGHTN; sprite[SPRITE.BABY_DRAGON_WING_LEFT_ATTACK] = []; sprite[SPRITE.BABY_DRAGON_WING_LEFT_ATTACK][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_LEFT_ATTACKD; sprite[SPRITE.BABY_DRAGON_WING_LEFT_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_LEFT_ATTACKN; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_ATTACK] = []; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_ATTACK][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_RIGHT_ATTACKD; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_RIGHT_ATTACKN; sprite[SPRITE.BABY_DRAGON_WING_LEFT_TAMED] = []; sprite[SPRITE.BABY_DRAGON_WING_LEFT_TAMED][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_LEFT_TAMEDD; sprite[SPRITE.BABY_DRAGON_WING_LEFT_TAMED][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_LEFT_TAMEDN; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_TAMED] = []; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_TAMED][SPRITE.DAY] = IMAGES.BABY_DRAGON_WING_RIGHT_TAMEDD; sprite[SPRITE.BABY_DRAGON_WING_RIGHT_TAMED][SPRITE.NIGHT] = IMAGES.BABY_DRAGON_WING_RIGHT_TAMEDN; sprite[SPRITE.HURT_BABY_DRAGON] = IMAGES.HURT_BABY_DRAGON; sprite[SPRITE.HURT_BABY_DRAGON_WING_LEFT] = IMAGES.HURT_BABY_DRAGON_WING_LEFT; sprite[SPRITE.HURT_BABY_DRAGON_WING_RIGHT] = IMAGES.HURT_BABY_DRAGON_WING_RIGHT; sprite[SPRITE.BABY_LAVA_ATTACK] = []; sprite[SPRITE.BABY_LAVA_ATTACK][SPRITE.DAY] = IMAGES.BABY_LAVA_ATTACKD; sprite[SPRITE.BABY_LAVA_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_LAVA_ATTACKN; sprite[SPRITE.BABY_LAVA] = []; sprite[SPRITE.BABY_LAVA][SPRITE.DAY] = IMAGES.BABY_LAVAD; sprite[SPRITE.BABY_LAVA][SPRITE.NIGHT] = IMAGES.BABY_LAVAN; sprite[SPRITE.BABY_LAVA_TAMED] = []; sprite[SPRITE.BABY_LAVA_TAMED][SPRITE.DAY] = IMAGES.BABY_LAVA_TAMEDD; sprite[SPRITE.BABY_LAVA_TAMED][SPRITE.NIGHT] = IMAGES.BABY_LAVA_TAMEDN; sprite[SPRITE.BABY_LAVA_WING_LEFT] = []; sprite[SPRITE.BABY_LAVA_WING_LEFT][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_LEFTD; sprite[SPRITE.BABY_LAVA_WING_LEFT][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_LEFTN; sprite[SPRITE.BABY_LAVA_WING_RIGHT] = []; sprite[SPRITE.BABY_LAVA_WING_RIGHT][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_RIGHTD; sprite[SPRITE.BABY_LAVA_WING_RIGHT][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_RIGHTN; sprite[SPRITE.BABY_LAVA_WING_LEFT_ATTACK] = []; sprite[SPRITE.BABY_LAVA_WING_LEFT_ATTACK][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_LEFT_ATTACKD; sprite[SPRITE.BABY_LAVA_WING_LEFT_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_LEFT_ATTACKN; sprite[SPRITE.BABY_LAVA_WING_RIGHT_ATTACK] = []; sprite[SPRITE.BABY_LAVA_WING_RIGHT_ATTACK][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_RIGHT_ATTACKD; sprite[SPRITE.BABY_LAVA_WING_RIGHT_ATTACK][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_RIGHT_ATTACKN; sprite[SPRITE.BABY_LAVA_WING_LEFT_TAMED] = []; sprite[SPRITE.BABY_LAVA_WING_LEFT_TAMED][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_LEFT_TAMEDD; sprite[SPRITE.BABY_LAVA_WING_LEFT_TAMED][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_LEFT_TAMEDN; sprite[SPRITE.BABY_LAVA_WING_RIGHT_TAMED] = []; sprite[SPRITE.BABY_LAVA_WING_RIGHT_TAMED][SPRITE.DAY] = IMAGES.BABY_LAVA_WING_RIGHT_TAMEDD; sprite[SPRITE.BABY_LAVA_WING_RIGHT_TAMED][SPRITE.NIGHT] = IMAGES.BABY_LAVA_WING_RIGHT_TAMEDN; sprite[SPRITE.HURT_BABY_LAVA] = IMAGES.HURT_BABY_LAVA; sprite[SPRITE.HURT_BABY_LAVA_WING_LEFT] = IMAGES.HURT_BABY_LAVA_WING_LEFT; sprite[SPRITE.HURT_BABY_LAVA_WING_RIGHT] = IMAGES.HURT_BABY_LAVA_WING_RIGHT; sprite[SPRITE.HAWK_ATTACK] = []; sprite[SPRITE.HAWK_ATTACK][SPRITE.DAY] = IMAGES.HAWK_ATTACKD; sprite[SPRITE.HAWK_ATTACK][SPRITE.NIGHT] = IMAGES.HAWK_ATTACKN; sprite[SPRITE.HAWK] = []; sprite[SPRITE.HAWK][SPRITE.DAY] = IMAGES.HAWKD; sprite[SPRITE.HAWK][SPRITE.NIGHT] = IMAGES.HAWKN; sprite[SPRITE.HURT_HAWK_GROUND] = IMAGES.HURT_HAWK_GROUND; sprite[SPRITE.HAWK_GROUND] = []; sprite[SPRITE.HAWK_GROUND][SPRITE.DAY] = IMAGES.HAWK_GROUNDD; sprite[SPRITE.HAWK_GROUND][SPRITE.NIGHT] = IMAGES.HAWK_GROUNDN; sprite[SPRITE.HAWK_GROUND_ATTACK] = []; sprite[SPRITE.HAWK_GROUND_ATTACK][SPRITE.DAY] = IMAGES.HAWK_GROUND_ATTACKD; sprite[SPRITE.HAWK_GROUND_ATTACK][SPRITE.NIGHT] = IMAGES.HAWK_GROUND_ATTACKN; sprite[SPRITE.HAWK_TAMED] = []; sprite[SPRITE.HAWK_TAMED][SPRITE.DAY] = IMAGES.HAWK_TAMEDD; sprite[SPRITE.HAWK_TAMED][SPRITE.NIGHT] = IMAGES.HAWK_TAMEDN; sprite[SPRITE.HAWK_WING_LEFT] = []; sprite[SPRITE.HAWK_WING_LEFT][SPRITE.DAY] = IMAGES.HAWK_WING_LEFTD; sprite[SPRITE.HAWK_WING_LEFT][SPRITE.NIGHT] = IMAGES.HAWK_WING_LEFTN; sprite[SPRITE.HAWK_WING_RIGHT] = []; sprite[SPRITE.HAWK_WING_RIGHT][SPRITE.DAY] = IMAGES.HAWK_WING_RIGHTD; sprite[SPRITE.HAWK_WING_RIGHT][SPRITE.NIGHT] = IMAGES.HAWK_WING_RIGHTN; sprite[SPRITE.HAWK_WING_LEFT_ATTACK] = []; sprite[SPRITE.HAWK_WING_LEFT_ATTACK][SPRITE.DAY] = IMAGES.HAWK_WING_LEFT_ATTACKD; sprite[SPRITE.HAWK_WING_LEFT_ATTACK][SPRITE.NIGHT] = IMAGES.HAWK_WING_LEFT_ATTACKN; sprite[SPRITE.HAWK_WING_RIGHT_ATTACK] = []; sprite[SPRITE.HAWK_WING_RIGHT_ATTACK][SPRITE.DAY] = IMAGES.HAWK_WING_RIGHT_ATTACKD; sprite[SPRITE.HAWK_WING_RIGHT_ATTACK][SPRITE.NIGHT] = IMAGES.HAWK_WING_RIGHT_ATTACKN; sprite[SPRITE.HAWK_WING_LEFT_TAMED] = []; sprite[SPRITE.HAWK_WING_LEFT_TAMED][SPRITE.DAY] = IMAGES.HAWK_WING_LEFT_TAMEDD; sprite[SPRITE.HAWK_WING_LEFT_TAMED][SPRITE.NIGHT] = IMAGES.HAWK_WING_LEFT_TAMEDN; sprite[SPRITE.HAWK_WING_RIGHT_TAMED] = []; sprite[SPRITE.HAWK_WING_RIGHT_TAMED][SPRITE.DAY] = IMAGES.HAWK_WING_RIGHT_TAMEDD; sprite[SPRITE.HAWK_WING_RIGHT_TAMED][SPRITE.NIGHT] = IMAGES.HAWK_WING_RIGHT_TAMEDN; sprite[SPRITE.HURT_HAWK] = IMAGES.HURT_HAWK; sprite[SPRITE.HURT_HAWK_WING_LEFT] = IMAGES.HURT_HAWK_WING_LEFT; sprite[SPRITE.HURT_HAWK_WING_RIGHT] = IMAGES.HURT_HAWK_WING_RIGHT; sprite[SPRITE.VULTURE_ATTACK] = []; sprite[SPRITE.VULTURE_ATTACK][SPRITE.DAY] = IMAGES.VULTURE_ATTACKD; sprite[SPRITE.VULTURE_ATTACK][SPRITE.NIGHT] = IMAGES.VULTURE_ATTACKN; sprite[SPRITE.VULTURE] = []; sprite[SPRITE.VULTURE][SPRITE.DAY] = IMAGES.VULTURED; sprite[SPRITE.VULTURE][SPRITE.NIGHT] = IMAGES.VULTUREN; sprite[SPRITE.HURT_VULTURE_GROUND] = IMAGES.HURT_VULTURE_GROUND; sprite[SPRITE.VULTURE_GROUND] = []; sprite[SPRITE.VULTURE_GROUND][SPRITE.DAY] = IMAGES.VULTURE_GROUNDD; sprite[SPRITE.VULTURE_GROUND][SPRITE.NIGHT] = IMAGES.VULTURE_GROUNDN; sprite[SPRITE.VULTURE_GROUND_ATTACK] = []; sprite[SPRITE.VULTURE_GROUND_ATTACK][SPRITE.DAY] = IMAGES.VULTURE_GROUND_ATTACKD; sprite[SPRITE.VULTURE_GROUND_ATTACK][SPRITE.NIGHT] = IMAGES.VULTURE_GROUND_ATTACKN; sprite[SPRITE.VULTURE_TAMED] = []; sprite[SPRITE.VULTURE_TAMED][SPRITE.DAY] = IMAGES.VULTURE_TAMEDD; sprite[SPRITE.VULTURE_TAMED][SPRITE.NIGHT] = IMAGES.VULTURE_TAMEDN; sprite[SPRITE.VULTURE_WING_LEFT] = []; sprite[SPRITE.VULTURE_WING_LEFT][SPRITE.DAY] = IMAGES.VULTURE_WING_LEFTD; sprite[SPRITE.VULTURE_WING_LEFT][SPRITE.NIGHT] = IMAGES.VULTURE_WING_LEFTN; sprite[SPRITE.VULTURE_WING_RIGHT] = []; sprite[SPRITE.VULTURE_WING_RIGHT][SPRITE.DAY] = IMAGES.VULTURE_WING_RIGHTD; sprite[SPRITE.VULTURE_WING_RIGHT][SPRITE.NIGHT] = IMAGES.VULTURE_WING_RIGHTN; sprite[SPRITE.VULTURE_WING_LEFT_ATTACK] = []; sprite[SPRITE.VULTURE_WING_LEFT_ATTACK][SPRITE.DAY] = IMAGES.VULTURE_WING_LEFT_ATTACKD; sprite[SPRITE.VULTURE_WING_LEFT_ATTACK][SPRITE.NIGHT] = IMAGES.VULTURE_WING_LEFT_ATTACKN; sprite[SPRITE.VULTURE_WING_RIGHT_ATTACK] = []; sprite[SPRITE.VULTURE_WING_RIGHT_ATTACK][SPRITE.DAY] = IMAGES.VULTURE_WING_RIGHT_ATTACKD; sprite[SPRITE.VULTURE_WING_RIGHT_ATTACK][SPRITE.NIGHT] = IMAGES.VULTURE_WING_RIGHT_ATTACKN; sprite[SPRITE.VULTURE_WING_LEFT_TAMED] = []; sprite[SPRITE.VULTURE_WING_LEFT_TAMED][SPRITE.DAY] = IMAGES.VULTURE_WING_LEFT_TAMEDD; sprite[SPRITE.VULTURE_WING_LEFT_TAMED][SPRITE.NIGHT] = IMAGES.VULTURE_WING_LEFT_TAMEDN; sprite[SPRITE.VULTURE_WING_RIGHT_TAMED] = []; sprite[SPRITE.VULTURE_WING_RIGHT_TAMED][SPRITE.DAY] = IMAGES.VULTURE_WING_RIGHT_TAMEDD; sprite[SPRITE.VULTURE_WING_RIGHT_TAMED][SPRITE.NIGHT] = IMAGES.VULTURE_WING_RIGHT_TAMEDN; sprite[SPRITE.HURT_VULTURE] = IMAGES.HURT_VULTURE; sprite[SPRITE.HURT_VULTURE_WING_LEFT] = IMAGES.HURT_VULTURE_WING_LEFT; sprite[SPRITE.HURT_VULTURE_WING_RIGHT] = IMAGES.HURT_VULTURE_WING_RIGHT; sprite[SPRITE.BOAR] = []; sprite[SPRITE.BOAR][SPRITE.DAY] = IMAGES.BOARD; sprite[SPRITE.BOAR][SPRITE.NIGHT] = IMAGES.BOARN; sprite[SPRITE.BOAR_TAMED] = []; sprite[SPRITE.BOAR_TAMED][SPRITE.DAY] = IMAGES.BOAR_TAMEDD; sprite[SPRITE.BOAR_TAMED][SPRITE.NIGHT] = IMAGES.BOAR_TAMEDN; sprite[SPRITE.BOAR_ATTACK] = []; sprite[SPRITE.BOAR_ATTACK][SPRITE.DAY] = IMAGES.BOAR_ANGRYD; sprite[SPRITE.BOAR_ATTACK][SPRITE.NIGHT] = IMAGES.BOAR_ANGRYN; sprite[SPRITE.BOAR_STEP] = []; sprite[SPRITE.BOAR_STEP][SPRITE.DAY] = IMAGES.BOAR_STEP; sprite[SPRITE.BOAR_STEP][SPRITE.NIGHT] = IMAGES.BOAR_STEP; sprite[SPRITE.CRAB_STEP] = []; sprite[SPRITE.CRAB_STEP][SPRITE.DAY] = IMAGES.CRAB_STEP; sprite[SPRITE.CRAB_STEP][SPRITE.NIGHT] = IMAGES.CRAB_STEP; sprite[SPRITE.BABY_MAMMOTH_STEP] = []; sprite[SPRITE.BABY_MAMMOTH_STEP][SPRITE.DAY] = IMAGES.BABY_MAMMOTH_STEP; sprite[SPRITE.BABY_MAMMOTH_STEP][SPRITE.NIGHT] = IMAGES.BABY_MAMMOTH_STEP; sprite[SPRITE.HURT_BOAR] = IMAGES.HURT_BOAR; sprite[ItemType.SADDLE] = []; sprite[ItemType.SADDLE][SPRITE.DAY] = IMAGES.SADDLED; sprite[ItemType.SADDLE][SPRITE.NIGHT] = IMAGES.SADDLEN; sprite[ItemType.WAND1] = []; sprite[ItemType.WAND1][SPRITE.DAY] = IMAGES.WAND1D; sprite[ItemType.WAND1][SPRITE.NIGHT] = IMAGES.WAND1N; sprite[SPRITE.SPELL] = []; sprite[SPRITE.SPELL][SPRITE.DAY] = [IMAGES.LIGHT_WAND0D, IMAGES.LIGHT_WAND1D, IMAGES.WOOD_ARROWD, IMAGES.STONE_ARROWD, IMAGES.GOLD_ARROWD, IMAGES.DIAMOND_ARROWD, IMAGES.AMETHYST_ARROWD, IMAGES.REIDITE_ARROWD, IMAGES.DRAGON_ARROWD]; sprite[SPRITE.SPELL][SPRITE.NIGHT] = [IMAGES.LIGHT_WAND0N, IMAGES.LIGHT_WAND1N, IMAGES.WOOD_ARROWN, IMAGES.STONE_ARROWN, IMAGES.GOLD_ARROWN, IMAGES.DIAMOND_ARROWN, IMAGES.AMETHYST_ARROWN, IMAGES.REIDITE_ARROWD, IMAGES.DRAGON_ARROWN]; sprite[ItemType.WAND2] = []; sprite[ItemType.WAND2][SPRITE.DAY] = IMAGES.WAND2D; sprite[ItemType.WAND2][SPRITE.NIGHT] = IMAGES.WAND2N; sprite[SPRITE.BOAT_WAVE] = []; sprite[SPRITE.BOAT_WAVE][SPRITE.DAY] = IMAGES.BOAT_WAVED; sprite[SPRITE.BOAT_WAVE][SPRITE.NIGHT] = IMAGES.BOAT_WAVEN; sprite[SPRITE.SLED_WAVE] = []; sprite[SPRITE.SLED_WAVE][SPRITE.DAY] = IMAGES.SLED_WAVED; sprite[SPRITE.SLED_WAVE][SPRITE.NIGHT] = IMAGES.SLED_WAVEN; sprite[ItemType.PIRATE_HAT] = []; sprite[ItemType.PIRATE_HAT][SPRITE.DAY] = IMAGES.PIRATE_HATD; sprite[ItemType.PIRATE_HAT][SPRITE.NIGHT] = IMAGES.PIRATE_HATN; sprite[ItemType.FUR_HAT] = []; sprite[ItemType.FUR_HAT][SPRITE.DAY] = IMAGES.FUR_HATD; sprite[ItemType.FUR_HAT][SPRITE.NIGHT] = IMAGES.FUR_HATN; sprite[ItemType.FLOWER_HAT] = []; sprite[ItemType.FLOWER_HAT][SPRITE.DAY] = IMAGES.FLOWER_HATD; sprite[ItemType.FLOWER_HAT][SPRITE.NIGHT] = IMAGES.FLOWER_HATN; sprite[ItemType.PILOT_HAT] = []; sprite[ItemType.PILOT_HAT][SPRITE.DAY] = IMAGES.PILOT_HELMETD; sprite[ItemType.PILOT_HAT][SPRITE.NIGHT] = IMAGES.PILOT_HELMETN; MINIMAP_UTILS["g"] = []; MINIMAP_UTILS["g"][0] = [IMAGES.MAPDAY_GOLD1, IMAGES.MAPNIGHT_GOLD1]; MINIMAP_UTILS["g"][1] = MINIMAP_UTILS["g"][0]; MINIMAP_UTILS["g"][2] = [IMAGES.MAPDAY_GOLD2, IMAGES.MAPNIGHT_GOLD2]; MINIMAP_UTILS["m"] = []; MINIMAP_UTILS["m"][0] = [IMAGES.MAPDAY_EMERALD1, IMAGES.MAPNIGHT_EMERALD1]; MINIMAP_UTILS["m"][1] = MINIMAP_UTILS["m"][0]; MINIMAP_UTILS["m"][2] = [IMAGES.MAPDAY_EMERALD2, IMAGES.MAPNIGHT_EMERALD2]; MINIMAP_UTILS["la"] = []; MINIMAP_UTILS["la"][0] = [IMAGES.MAPDAY_MAGMA, IMAGES.MAPNIGHT_MAGMA]; MINIMAP_UTILS["la"][1] = MINIMAP_UTILS["la"][0]; MINIMAP_UTILS["la"][2] = MINIMAP_UTILS["la"][0]; MINIMAP_UTILS["la"][3] = MINIMAP_UTILS["la"][0]; MINIMAP_UTILS["la"][4] = MINIMAP_UTILS["la"][0]; MINIMAP_UTILS["la"][5] = MINIMAP_UTILS["la"][0]; MINIMAP_UTILS["s"] = []; MINIMAP_UTILS["s"][0] = [IMAGES.MAPDAY_STONE1, IMAGES.MAPNIGHT_STONE1]; MINIMAP_UTILS["s"][1] = MINIMAP_UTILS["s"][0]; MINIMAP_UTILS["s"][2] = [IMAGES.MAPDAY_STONE2, IMAGES.MAPNIGHT_STONE2]; MINIMAP_UTILS["p"] = []; MINIMAP_UTILS["p"][0] = [IMAGES.MAPDAY_BERRY, IMAGES.MAPDAY_BERRY]; MINIMAP_UTILS["a"] = []; MINIMAP_UTILS["a"][0] = [IMAGES.MAPDAY_AMETHYST, IMAGES.MAPNIGHT_AMETHYST]; MINIMAP_UTILS["a"][1] = MINIMAP_UTILS["a"][0]; MINIMAP_UTILS["a"][2] = MINIMAP_UTILS["a"][0]; MINIMAP_UTILS["d"] = []; MINIMAP_UTILS["d"][0] = [IMAGES.MAPDAY_DIAMOND, IMAGES.MAPNIGHT_DIAMOND]; MINIMAP_UTILS["d"][1] = MINIMAP_UTILS["d"][0]; MINIMAP_UTILS["d"][2] = MINIMAP_UTILS["d"][0]; MINIMAP_UTILS["re"] = []; MINIMAP_UTILS["re"][0] = [IMAGES.MAPDAY_REIDITE, IMAGES.MAPNIGHT_REIDITE]; MINIMAP_UTILS["re"][1] = MINIMAP_UTILS["re"][0]; MINIMAP_UTILS["re"][2] = MINIMAP_UTILS["re"][0]; MINIMAP_UTILS["f"] = []; MINIMAP_UTILS["f"][0] = [IMAGES.MAPDAY_FIR_TREE, IMAGES.MAPNIGHT_FIR_TREE]; MINIMAP_UTILS["f"][1] = MINIMAP_UTILS["f"][0]; MINIMAP_UTILS["f"][2] = MINIMAP_UTILS["f"][0]; MINIMAP_UTILS["isl"] = []; MINIMAP_UTILS["isl"][0] = [IMAGES.MAPDAY_ISLAND, IMAGES.MAPNIGHT_ISLAND]; MINIMAP_UTILS["isl"][1] = MINIMAP_UTILS["isl"][0]; MINIMAP_UTILS["isl"][2] = MINIMAP_UTILS["isl"][0]; MINIMAP_UTILS["c"] = []; MINIMAP_UTILS["c"][0] = [IMAGES.MAPDAY_CACTUS, IMAGES.MAPNIGHT_CACTUS]; MINIMAP_UTILS["c"][1] = MINIMAP_UTILS["c"][0]; MINIMAP_UTILS["c"][2] = MINIMAP_UTILS["c"][0]; MINIMAP_UTILS["wtb"] = []; MINIMAP_UTILS["wtb"][0] = [IMAGES.MAPDAY_RIVER, IMAGES.MAPNIGHT_RIVER]; MINIMAP_UTILS["PIRANHA"] = [IMAGES.MAPDAY_PIRANHA, IMAGES.MAPNIGHT_PIRANHA]; MINIMAP_UTILS["KRAKEN"] = [IMAGES.MAPDAY_KRAKEN, IMAGES.MAPNIGHT_KRAKEN]; MINIMAP_UTILS["FOX"] = [IMAGES.MAPDAY_FOX, IMAGES.MAPNIGHT_FOX]; MINIMAP_UTILS["WOLF"] = [IMAGES.MAPDAY_WOLF, IMAGES.MAPNIGHT_WOLF]; MINIMAP_UTILS["SPIDER"] = [IMAGES.MAPDAY_SPIDER, IMAGES.MAPNIGHT_SPIDER]; MINIMAP_UTILS["BEAR"] = [IMAGES.MAPDAY_BEAR, IMAGES.MAPNIGHT_BEAR]; MINIMAP_UTILS["CAVE"] = [IMAGES.MAPDAY_CAVE, IMAGES.MAPNIGHT_CAVE]; MINIMAP_UTILS["MAP"] = [IMAGES.BIGDAY, IMAGES.BIGNIGHT]; MINIMAP_UTILS["FOREST"] = [IMAGES.MAPDAY_FOREST, IMAGES.MAPNIGHT_FOREST]; MINIMAP_UTILS["WINTER"] = [IMAGES.MAPDAY_WINTER, IMAGES.MAPNIGHT_WINTER]; MINIMAP_UTILS["DESERT"] = [IMAGES.MAPDAY_DESERT, IMAGES.MAPNIGHT_DESERT]; MINIMAP_UTILS["LAVA"] = [IMAGES.MAPDAY_LAVA, IMAGES.MAPNIGHT_LAVA]; // Preload all minimap image related for (var _key in MINIMAP_UTILS) { var _utils = MINIMAP_UTILS[_key]; for (var i = 0; i < _utils.length; i++) { var _subutils = _utils[i]; if (_subutils.tryLoad !== undefined) _subutils.tryLoad(); else if (_subutils.length > 0) { for (var j = 0; j < _subutils.length; j++) { if (_subutils[j].tryLoad !== undefined) _subutils[j].tryLoad(); } } } } } function create_images() { var scale = 1; var TIMEDEBUG = new window.Date().getTime(); _load_images(); render_inventory(); /* Bubbles */ sprite[SPRITE.BUBBLES] = []; sprite[SPRITE.BUBBLES][SPRITE.DAY] = []; sprite[SPRITE.BUBBLES][SPRITE.NIGHT] = []; for (var i = 0; i < SPRITE.BUBBLES_SIZES; i++) { sprite[SPRITE.BUBBLES][SPRITE.DAY].push(CTI(create_flake(scale, 4 + i, "#59B8CE"))); sprite[SPRITE.BUBBLES][SPRITE.NIGHT].push(CTI(create_flake(scale, 4 + i, "#90DDD9"))); } /* Flakes */ sprite[SPRITE.FLAKES] = []; sprite[SPRITE.FLAKES][SPRITE.DAY] = []; sprite[SPRITE.FLAKES][SPRITE.NIGHT] = []; for (var i = 0; i < SPRITE.FLAKES_SIZES; i++) { sprite[SPRITE.FLAKES][SPRITE.DAY].push(CTI(create_flake(scale, 4 + i, "#ffffff"))); sprite[SPRITE.FLAKES][SPRITE.NIGHT].push(CTI(create_flake(scale, 4 + i, "#ffffff"))); } sprite[SPRITE.DESERT] = []; sprite[SPRITE.DESERT][SPRITE.DAY] = []; sprite[SPRITE.DESERT][SPRITE.NIGHT] = []; for (var i = 0; i < SPRITE.FLAKES_SIZES; i++) { sprite[SPRITE.DESERT][SPRITE.DAY].push(CTI(create_flake(scale, 6 + i, "#DDCD8A"))); sprite[SPRITE.DESERT][SPRITE.NIGHT].push(CTI(create_flake(scale, 6 + i, "#155E57"))); } sprite[SPRITE.ASHES] = []; sprite[SPRITE.ASHES][SPRITE.DAY] = []; sprite[SPRITE.ASHES][SPRITE.NIGHT] = []; for (var i = 0; i < SPRITE.ASHES_SIZES; i++) { sprite[SPRITE.ASHES][SPRITE.DAY].push(CTI(create_flake(scale, 4 + i, "#353326"))); sprite[SPRITE.ASHES][SPRITE.NIGHT].push(CTI(create_flake(scale, 4 + i, "#1D2526"))); } /*WINTER*/ // Christmas sprite[ItemType.GARLAND] = []; sprite[ItemType.GARLAND][SPRITE.DAY] = CTI(create_garland(scale * 1.5, true, ["#ee71a9"])); sprite[ItemType.GARLAND][SPRITE.NIGHT] = CTI(create_garland(scale * 1.5, true, ["#ee71a9"])); sprite[SPRITE.GARLANDS] = [sprite[ItemType.GARLAND]]; sprite[SPRITE.GARLANDS][1] = []; sprite[SPRITE.GARLANDS][2] = []; sprite[SPRITE.GARLANDS][3] = []; sprite[SPRITE.GARLANDS][4] = []; sprite[SPRITE.GARLANDS][1][SPRITE.DAY] = CTI(create_garland(scale * 1.5, true, ["#e2d63b"])); sprite[SPRITE.GARLANDS][1][SPRITE.NIGHT] = CTI(create_garland(scale * 1.5, true, ["#e2d63b"])); sprite[SPRITE.GARLANDS][2][SPRITE.DAY] = CTI(create_garland(scale * 1.5, true, ["#309cbd"])); sprite[SPRITE.GARLANDS][2][SPRITE.NIGHT] = CTI(create_garland(scale * 1.5, true, ["#309cbd"])); sprite[SPRITE.GARLANDS][3][SPRITE.DAY] = CTI(create_garland(scale * 1.5, true, ["#cd232d"])); sprite[SPRITE.GARLANDS][3][SPRITE.NIGHT] = CTI(create_garland(scale * 1.5, true, ["#cd232d"])); sprite[SPRITE.GARLANDS][4][SPRITE.DAY] = CTI(create_garland(scale * 1.5, true, ["#42b672"])); sprite[SPRITE.GARLANDS][4][SPRITE.NIGHT] = CTI(create_garland(scale * 1.5, true, ["#42b672"])); var cti = Utils.gup("cti", window.location.href); if (cti) window.document.getElementById("version").innerHTML += "[CTI]"; else CTI = function (a) { a.loaded = 1; return a; }; /* Create market background */ sprite[SPRITE.MARKET_BGD] = CTI(create_background_market()); /*Stones, gold, diamond*/ sprite[ItemType.STONE] = []; sprite[ItemType.STONE][SPRITE.DAY] = []; sprite[ItemType.STONE][SPRITE.NIGHT] = []; sprite[ItemType.STONE][SPRITE.DAY].push(CTI(create_stone(scale * 1.1, false, /*["#252B28", "#58645F", "#75827D"]*/["#0a2d18", "#c3d1cb", "#e4efe8"]))); sprite[ItemType.STONE][SPRITE.DAY].push(CTI(create_stone(scale * 0.9, false, /*["#252B28", "#58645F", "#75827D"]*/["#0a2d18", "#c3d1cb", "#e4efe8"]))); sprite[ItemType.STONE][SPRITE.DAY].push(CTI(create_stone(scale * 0.6, false, /*["#252B28", "#58645F", "#75827D"]*/["#0a2d18", "#c3d1cb", "#e4efe8"]))); sprite[ItemType.STONE][SPRITE.NIGHT].push(CTI(create_stone(scale * 1.1, false, /*["#030d14", "#123335", "#183f3f"]*/["#0a2728", "#3c8e88", "#40a39b"]))); sprite[ItemType.STONE][SPRITE.NIGHT].push(CTI(create_stone(scale * 0.9, false, /*["#030d14", "#123335", "#183f3f"]*/["#0a2728", "#3c8e88", "#40a39b"]))); sprite[ItemType.STONE][SPRITE.NIGHT].push(CTI(create_stone(scale * 0.6, false, /*["#030d14", "#123335", "#183f3f"]*/["#0a2728", "#3c8e88", "#40a39b"]))); sprite[ItemType.GOLD] = []; sprite[ItemType.GOLD][SPRITE.DAY] = []; sprite[ItemType.GOLD][SPRITE.NIGHT] = []; sprite[ItemType.GOLD][SPRITE.DAY].push(CTI(create_gold(scale * 1.5, false, /*["#282823", "#877c2d", "#c4bc51"]*/["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[ItemType.GOLD][SPRITE.DAY].push(CTI(create_gold(scale * 1.3, false, /*["#282823", "#877c2d", "#c4bc51"]*/["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[ItemType.GOLD][SPRITE.DAY].push(CTI(create_gold(scale * 1.1, false, /*["#282823", "#877c2d", "#c4bc51"]*/["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[ItemType.GOLD][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.5, false, ["#030d14", "#1b4444", "#16605a"]))); sprite[ItemType.GOLD][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.3, false, ["#030d14", "#1b4444", "#16605a"]))); sprite[ItemType.GOLD][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.1, false, ["#030d14", "#1b4444", "#16605a"]))); sprite[ItemType.DIAMOND] = []; sprite[ItemType.DIAMOND][SPRITE.DAY] = []; sprite[ItemType.DIAMOND][SPRITE.NIGHT] = []; sprite[ItemType.DIAMOND][SPRITE.DAY].push(CTI(create_diamond(scale * 1.1, false, ["#232828", "#3fc9c9", "#74ede6"]))); sprite[ItemType.DIAMOND][SPRITE.DAY].push(CTI(create_diamond(scale * 0.9, false, ["#232828", "#3fc9c9", "#74ede6"]))); sprite[ItemType.DIAMOND][SPRITE.DAY].push(CTI(create_diamond(scale * 0.7, false, ["#232828", "#3fc9c9", "#74ede6"]))); sprite[ItemType.DIAMOND][SPRITE.NIGHT].push(CTI(create_diamond(scale * 1.1, false, ["#030d14", "#2b9390", "#57bcb5"]))); sprite[ItemType.DIAMOND][SPRITE.NIGHT].push(CTI(create_diamond(scale * 0.9, false, ["#030d14", "#2b9390", "#57bcb5"]))); sprite[ItemType.DIAMOND][SPRITE.NIGHT].push(CTI(create_diamond(scale * 0.7, false, ["#030d14", "#2b9390", "#57bcb5"]))); sprite[ItemType.ALOE_VERA] = []; sprite[ItemType.ALOE_VERA][SPRITE.DAY] = IMAGES.ALOE_VERAD sprite[ItemType.ALOE_VERA][SPRITE.NIGHT] = IMAGES.ALOE_VERAN sprite[SPRITE.HAND_SHADOW] = []; sprite[SPRITE.HAND_SHADOW][SPRITE.DAY] = CTI(create_hand_shadow(scale * 0.6, ["#0d1b1c"])); sprite[SPRITE.HAND_SHADOW][SPRITE.NIGHT] = CTI(create_hand_shadow(scale * 0.6, ["#030d14"])); sprite[SPRITE.GLOVES_HOOD] = []; sprite[SPRITE.GLOVES_HOOD][SPRITE.DAY] = CTI(create_hand(scale * 0.6, ["#2a2938", "#242330"])); sprite[SPRITE.GLOVES_HOOD][SPRITE.NIGHT] = CTI(create_hand(scale * 0.6, ["#1b1e30", "#161921"])); sprite[SPRITE.ZOMBIE_BODY] = []; sprite[SPRITE.ZOMBIE_BODY][SPRITE.DAY] = CTI(create_zombie_boss(scale * 0.6, true, ["#0d1b1c", "#759e6e", "#55604b", "#7d7252", "#575043"])); sprite[SPRITE.ZOMBIE_BODY][SPRITE.NIGHT] = CTI(create_zombie_boss(scale * 0.6, true, ["#030d14", "#11635e", "#02373e", "#0b524d", "#07423f"])); sprite[SPRITE.ZOMBIE_HEAD] = []; sprite[SPRITE.ZOMBIE_HEAD][SPRITE.DAY] = CTI(create_zombie_head(scale * 0.6, true, ["#0d1b1c", "#759e6e", "#55604b", "#f9ccd4", "#891a1e", "#da232e", "#a52026", "#a02d28", "#721819", "#FFFFFF"])); sprite[SPRITE.ZOMBIE_HEAD][SPRITE.NIGHT] = CTI(create_zombie_head(scale * 0.6, true, ["#030d14", "#11635e", "#02373e", "#167771", "#0c5752", "#401d49", "#2e1336", "#261336", "#23163c", "#FFFFFF"])); sprite[SPRITE.ZOMBIE_HAND] = []; sprite[SPRITE.ZOMBIE_HAND][SPRITE.DAY] = CTI(create_zombie_hand(scale * 0.4, ["#0d1b1c", "#759e6e", "#55604b"])); sprite[SPRITE.ZOMBIE_HAND][SPRITE.NIGHT] = CTI(create_zombie_hand(scale * 0.4, ["#030d14", "#11635e", "#02373e"])); sprite[SPRITE.ZOMBIE_HURT] = CTI(create_zombie_hurt(scale * 0.6, ["#BB0000"])); sprite[SPRITE.ZOMBIE_HUNGER] = CTI(create_zombie_hurt(scale * 0.6, ["#DBE71C"])); sprite[SPRITE.ZOMBIE_HEAL] = CTI(create_zombie_hurt(scale * 0.6, ["#00BB00"])); sprite[ItemType.WOOD] = []; sprite[ItemType.WOOD][SPRITE.DAY] = []; sprite[ItemType.WOOD][SPRITE.NIGHT] = []; sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 1.1, ["#13402d", "#0f9862", "#0b8750", "#26ab6e"]/*["#0e3022", "#0c8e5b", "#037542", "#209e64"]*//* ["#242503","#8e7c0c","#6d5903","#9e8320","#f0f4f0", "#FFFFFF"] */, false, 0)); /*create_fir_three (scale * 1.3, ["#0a2d18", "#124c34", "#227248", "#ccedd9", "#2d7a55", "#3c9660", "#afddc1", "#bbefd0", "#0a2d18", "#e4efe8"]));*/ sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 1.1, ["#0e3022", "#0f9862", "#0b8750", "#26ab6e"]/* ["#242503","#8e7c0c","#6d5903","#9e8320", "#f0f4f0", "#FFFFFF"] */, true, 0)); sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 0.9, ["#0e3022", "#0e7d4c", "#258a4d", "#248c4d"]/* ["#242503","#898e0c","#757303","#9e9b20", "#f0f4f0", "#FFFFFF"] */, false, 0)); sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 0.9, ["#0e3022", "#096d41", "#1f7b43", "#1f7b43"]/* ["#242503", "#963400","#7c2200","#a83204", "#f0f4f0", "#FFFFFF"] */, true, 0)); sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 0.7, ["#0e3022", "#124c34", "#0E3D26", "#155136"]/* ["#242503", "#6d5a09", "#77591a", "#7b5a1f", "#f0f4f0", "#FFFFFF"] */, false, 0)); sprite[ItemType.WOOD][SPRITE.DAY].push(create_apricot_tree(scale * 0.7, ["#0e3022", "#124c34", "#0E3D26", "#155136"]/* ["#242503", "#703700","#813009","#813009", "#f0f4f0", "#FFFFFF"] */, true, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 1.1, ["#030d14", "#124949", "#0e3838", "#15514f"]/* ["#030d14", "#12493d", "#0e3831", "#155247", "#f0f4f0", "#16695f"] */, false, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 1.1, ["#030d14", "#124949", "#0e3838", "#15514f"]/* ["#030d14", "#12493d", "#0e3831", "#155247", "#16695f"] */, true, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 0.9, ["#030d14", "#0b3534", "#144443", "#174240"]/* ["#030d14", "#0b3629", "#144437", "#174235", "#16695f"] */, false, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 0.9, ["#030d14", "#0b3534", "#144443", "#174240"]/* ["#030d14", "#0d2522", "#0c2821", "#0d2a28", "#16695f"] */, true, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 0.7, ["#030d14", "#082b29", "#073332", "#073332"]/* ["#030d14", "#082b1f", "#073328", "#073327", "#16695f"] */, false, 0)); sprite[ItemType.WOOD][SPRITE.NIGHT].push(create_apricot_tree(scale * 0.7, ["#030d14", "#082b29", "#073332", "#073332"]/* ["#030d14", "#0c2823", "#0b2b23", "#0c2d24", "#16695f"] */, true, 0)); sprite[SPRITE.TREE_BRANCH] = []; sprite[SPRITE.TREE_BRANCH][SPRITE.DAY] = []; sprite[SPRITE.TREE_BRANCH][SPRITE.NIGHT] = []; sprite[SPRITE.TREE_BRANCH][SPRITE.DAY].push(CTI(create_apricot_forest(create_tree_branch(scale * 1.1, ["#0e3022", "#4d2d14", "#432516", "#096d41", "#08562e", "#107746"]/* ["#242503","#4d2d14", "#432516", "#756608","#5b4a02","#8b731b"] */, false), sprite[ItemType.WOOD][SPRITE.DAY][0]))); sprite[SPRITE.TREE_BRANCH][SPRITE.DAY].push(CTI(create_apricot_forest(create_tree_branch(scale * 1.1, ["#0e3022", "#4d2d14", "#432516", "#096d41", "#08562e", "#107746"]/* ["#242503","#4d2d14", "#432516", "#756608","#5b4a02","#8b731b"] */, true), sprite[ItemType.WOOD][SPRITE.DAY][1]))); sprite[SPRITE.TREE_BRANCH][SPRITE.NIGHT].push(CTI(create_apricot_forest(create_tree_branch(scale * 1.1, ["#030d14", "#031619", "#041c21", "#0a3333", "#113f3c", "#113f3c"]/*["#030d14", "#031619", "#041c21", "#0e3b31", "#0b2e28", "#10443a"]*/, false), sprite[ItemType.WOOD][SPRITE.NIGHT][0]))); sprite[SPRITE.TREE_BRANCH][SPRITE.NIGHT].push(CTI(create_apricot_forest(create_tree_branch(scale * 1.1, ["#030d14", "#031619", "#041c21", "#0a3333", "#113f3c", "#113f3c"]/*["#030d14", "#031619", "#041c21", "#0e3b31", "#0b2e28", "#10443a"]*/, true), sprite[ItemType.WOOD][SPRITE.NIGHT][1]))); sprite[SPRITE.TREE_BRANCH][SPRITE.DAY].push(CTI(create_apricot_forest(create_tree_branch(scale * 0.9, ["#0e3022", "#4d2d14", "#432516", "#096d41", "#107746", "#107746"]/*["#242503","#4d2d14", "#432516", "#6d6c09","#686609","#777310"]*/, false), sprite[ItemType.WOOD][SPRITE.DAY][2]))); sprite[SPRITE.TREE_BRANCH][SPRITE.DAY].push(CTI(create_apricot_forest(create_tree_branch(scale * 0.9, ["#0e3022", "#4d2d14", "#432516", "#096d41", "#107746", "#107746"]/*["#242503","#4d2d14", "#432516", "#6d6c09","#686609","#777310"]*/, true), sprite[ItemType.WOOD][SPRITE.DAY][2]))); sprite[SPRITE.TREE_BRANCH][SPRITE.NIGHT].push(CTI(create_apricot_forest(create_tree_branch(scale * 0.9, ["#030d14", "#031619", "#041c21", "#082b29", "#083b3a", "#083b3a"]/*["#030d14", "#031619", "#041c21", "#0d2522", "#0c2821", "#0d2a28"]*/, false), sprite[ItemType.WOOD][SPRITE.NIGHT][2]))); sprite[SPRITE.TREE_BRANCH][SPRITE.NIGHT].push(CTI(create_apricot_forest(create_tree_branch(scale * 0.9, ["#030d14", "#031619", "#041c21", "#082b29", "#083b3a", "#083b3a"]/*["#030d14", "#031619", "#041c21", "#0c2823", "#0b2b23", "#0c2d24"]*/, true), sprite[ItemType.WOOD][SPRITE.NIGHT][3]))); sprite[ItemType.WOOD][SPRITE.DAY][5] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][5]); sprite[ItemType.WOOD][SPRITE.DAY][4] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][4]); sprite[ItemType.WOOD][SPRITE.DAY][3] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][3]); sprite[ItemType.WOOD][SPRITE.DAY][2] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][2]); sprite[ItemType.WOOD][SPRITE.DAY][1] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][1]); sprite[ItemType.WOOD][SPRITE.DAY][0] = CTI(sprite[ItemType.WOOD][SPRITE.DAY][0]); sprite[ItemType.WOOD][SPRITE.NIGHT][5] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][5]); sprite[ItemType.WOOD][SPRITE.NIGHT][4] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][4]); sprite[ItemType.WOOD][SPRITE.NIGHT][3] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][3]); sprite[ItemType.WOOD][SPRITE.NIGHT][2] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][2]); sprite[ItemType.WOOD][SPRITE.NIGHT][1] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][1]); sprite[ItemType.WOOD][SPRITE.NIGHT][0] = CTI(sprite[ItemType.WOOD][SPRITE.NIGHT][0]); sprite[ItemType.WOOD_PICK] = [] sprite[ItemType.WOOD_PICK][SPRITE.DAY] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#0d1b1c", "#000000", "#0d1b1c", "#4d2d14", "#432516", "#4d2d14", "#432516"]))); sprite[ItemType.WOOD_PICK][SPRITE.NIGHT] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#030d14", "#000000", "#030d14", "#0d2e33", "#0b2326", "#0d2e33", "#0b2326"]))); sprite[ItemType.STONE_PICK] = [] sprite[ItemType.STONE_PICK][SPRITE.DAY] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#0d1b1c", "#000000", "#0d1b1c", "#4d2d14", "#432516", "#939393", "#5f6061"]))); sprite[ItemType.STONE_PICK][SPRITE.NIGHT] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#030d14", "#000000", "#030d14", "#0d2e33", "#0b2326", "#485e66", "#1f343f"]))); sprite[ItemType.GOLD_PICK] = [] sprite[ItemType.GOLD_PICK][SPRITE.DAY] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#0d1b1c", "#000000", "#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32"]))); sprite[ItemType.GOLD_PICK][SPRITE.NIGHT] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#030d14", "#000000", "#030d14", "#263947", "#263947", "#43aa82", "#29997c"]))); sprite[ItemType.DIAMOND_PICK] = [] sprite[ItemType.DIAMOND_PICK][SPRITE.DAY] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#0d1b1c", "#000000", "#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1"]))); sprite[ItemType.DIAMOND_PICK][SPRITE.NIGHT] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#030d14", "#000000", "#030d14", "#111316", "#0a0b0c", "#73dde5", "#3dc4c0"]))); sprite[ItemType.AMETHYST_PICK] = [] sprite[ItemType.AMETHYST_PICK][SPRITE.DAY] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#0d1b1c", "#000000", "#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa"]))); sprite[ItemType.AMETHYST_PICK][SPRITE.NIGHT] = CTI(create_rotated_img(4, create_pickaxe(scale * 0.75, true, ["#030d14", "#000000", "#030d14", "#111316", "#0a0b0c", "#8359d3", "#764eb5"]))); sprite[ItemType.PIRATE_SWORD] = []; sprite[ItemType.PIRATE_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_pirate_sword(scale * 0.17, true, ["#0d1b1c", "#4a3a22", "#362818", "#c7c7c7", "#909090", "#eceaea", "#bbbbbb", "#d6d1d1"]))); sprite[ItemType.PIRATE_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_pirate_sword(scale * 0.17, true, ["#0d1b1c", "#0d2e33", "#0b2326", "#59737d", "#364f59", "#618395", "#4d768c", "#54859f"]))); // Christmas sprite[ItemType.SUGAR_CAN] = []; sprite[ItemType.SUGAR_CAN][SPRITE.DAY] = CTI(create_rotated_img(3, create_sugar_can(scale * 0.32, true, ["#0d1b1c", "#ffffff", "#5f6061", "#eb2933", "#57b74e", "#42a54d", "#ac222a", "#e6636a"]))); sprite[ItemType.SUGAR_CAN][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_sugar_can(scale * 0.42, true, ["#0d1b1c", "#485e66", "#1f343f", "#0d2e33", "#0b2326"]))); sprite[ItemType.WOOD_SWORD] = []; sprite[ItemType.WOOD_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_sword_wood(scale * 0.4, true, ["#0d1b1c", "#73583e", "#493425", "#7d6144", "#5e4530", "#473221", "#745840"]))); sprite[ItemType.WOOD_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_sword_wood(scale * 0.4, true, ["#0d1b1c", "#0b3d3a", "#092b2a", "#144642", "#082927", "#092b29"]))); sprite[ItemType.STONE_SWORD] = []; sprite[ItemType.STONE_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_stonesword(scale * 0.4, true, ["#0d1b1c", "#939393", "#5f6061", "#b1afaf", "#493d36", "#332b28"]))); sprite[ItemType.STONE_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_stonesword(scale * 0.4, true, ["#0d1b1c", "#485e66", "#1f343f", "#5d757e", "#0d2e33", "#0b2326"]))); sprite[ItemType.GOLD_SWORD] = []; sprite[ItemType.GOLD_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_goldsword(scale * 0.4, true, ["#0d1b1c", "#c4bc51", "#b29c32", "#c4bc51", "#493e26", "#382e19"]))); sprite[ItemType.GOLD_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_goldsword(scale * 0.4, true, ["#0d1b1c", "#43aa82", "#29997c", "#54bf96", "#263947", "#182935",]))); sprite[ItemType.DIAMOND_SWORD] = []; sprite[ItemType.DIAMOND_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_diamondsword(scale * 0.4, true, ["#0d1b1c", "#6ad9e8", "#29aaa1", "#95e9f5", "#022320", "#011e19", "#FFFFFF"]))); sprite[ItemType.DIAMOND_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_diamondsword(scale * 0.4, true, ["#0d1b1c", "#73dde5", "#3dc4c0", "#93eaf1", "#111316", "#0a0b0c",]))); sprite[ItemType.AMETHYST_SWORD] = []; sprite[ItemType.AMETHYST_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_amesword(scale * 0.4, true, ["#0d1b1c", "#b864d6", "#8c29aa", "#cc81e7", "#262114", "#211108", "#FFFFFF"]))); sprite[ItemType.AMETHYST_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_amesword(scale * 0.4, true, ["#0d1b1c", "#8359d3", "#764eb5", "#966de6", "#111316", "#0a0b0c",]))); sprite[SPRITE.HERB] = []; sprite[SPRITE.HERB][SPRITE.DAY] = []; sprite[SPRITE.HERB][SPRITE.NIGHT] = []; sprite[SPRITE.HERB][SPRITE.DAY].push(CTI(create_herb(scale * 0.9, false, /*["#1b4936"]*//*AUTOMN["#49421b"]*/["#0d4f35"], 0))); sprite[SPRITE.HERB][SPRITE.DAY].push(CTI(create_herb(scale * 0.9, false, /*["#1b4936"]*//*AUTOMN["#49421b"]*/["#0d4f35"], 1))); sprite[SPRITE.HERB][SPRITE.DAY].push(CTI(create_herb(scale * 0.9, false, /*["#1b4936"]*//*AUTOMN["#49421b"]*/["#0d4f35"], 2))); sprite[SPRITE.HERB][SPRITE.NIGHT].push(CTI(create_herb(scale * 0.9, false, /*["#083033"]*//*AUTOMN["#49421b"]*/["#053339"], 0))); sprite[SPRITE.HERB][SPRITE.NIGHT].push(CTI(create_herb(scale * 0.9, false, /*["#083033"]*//*AUTOMN["#49421b"]*/["#053339"], 1))); sprite[SPRITE.HERB][SPRITE.NIGHT].push(CTI(create_herb(scale * 0.9, false, /*["#083033"]*//*AUTOMN["#49421b"]*/["#053339"], 2))); sprite[SPRITE.HERB][SPRITE.DAY].push(CTI(create_leaf(scale * 0.8, ["#241301", "#ba6b0e", "#6d3f04"]))); sprite[SPRITE.HERB][SPRITE.DAY].push(CTI(create_leaf(scale * 0.8, ["#292002", "#ba930e", "#6d5704"]))); sprite[SPRITE.HERB][SPRITE.NIGHT].push(CTI(create_leaf(scale * 0.9, ["#052919", "#0a4738", "#06321f"]))); sprite[SPRITE.HERB][SPRITE.NIGHT].push(CTI(create_leaf(scale * 0.8, ["#052918", "#08491c", "#063417"]))); sprite[ItemType.BERRY] = []; sprite[ItemType.BERRY][SPRITE.DAY] = [CTI(create_plant(scale * 1.2, true, ["#0e3022", "#0b8052", "#077b49"]/* ["#352b10", "#80500b", "#7c4908"] */))]; sprite[ItemType.BERRY][SPRITE.NIGHT] = [CTI(create_plant(scale * 1.2, true, ["#030d14", "#084442", "#0a4049"]/* ["#030d14", "#0a3429", "#0a2f2b"] */))]; sprite[SPRITE.DRIED_PLANT] = []; sprite[SPRITE.DRIED_PLANT][SPRITE.DAY] = CTI(create_plant(scale * 0.8, true, ["#0e3022", "#68622D", "#665329"])); sprite[SPRITE.DRIED_PLANT][SPRITE.NIGHT] = CTI(create_plant(scale * 0.8, true, ["#030d14", "#0F3A24", "#083326"])); sprite[ItemType.PUMPKIN] = []; sprite[ItemType.PUMPKIN][SPRITE.DAY] = CTI(create_pumpkin(scale * 0.5, true, ["#1b170c", "#c67933", "#a6692f", "#bd7533", "#86683e", "#6e502d"])); sprite[ItemType.PUMPKIN][SPRITE.NIGHT] = CTI(create_pumpkin(scale * 0.5, true, ["#030d14", "#0a3429", "#0a2f2b", "#082f25", "#082925", "#0a3630"])); sprite[ItemType.GARLIC] = []; sprite[ItemType.GARLIC][SPRITE.DAY] = CTI(create_garlic(scale * 0.5, true, ["#1b170c", "#e8e8e8", "#d2cfcf", "#e0e1e0", "#c4c4c4"])); sprite[ItemType.GARLIC][SPRITE.NIGHT] = CTI(create_garlic(scale * 0.5, true, ["#030d14", "#2b5254", "#264a46", "#396260", "#244743"])); sprite[ItemType.THORNBUSH] = []; sprite[ItemType.THORNBUSH][SPRITE.DAY] = CTI(create_brambles(scale * 0.5, true, ["#1b170c", "#349970", "#245c45", "#348361", "#e8e8e8", "#bbbbbb"])); sprite[ItemType.THORNBUSH][SPRITE.NIGHT] = CTI(create_brambles(scale * 0.5, true, ["#030d14", "#0d5551", "#074440", "#0f5c58", "#4e8784", "#3f7572"])); sprite[SPRITE.PLANT_MINI] = []; sprite[SPRITE.PLANT_MINI][SPRITE.DAY] = CTI(create_plant(scale * 0.8, true, ["#1b170c", "#0b8052", "#077b49"]/*["#352b10", "#80500b", "#7c4908"]*/)); sprite[SPRITE.PLANT_MINI][SPRITE.NIGHT] = CTI(create_plant(scale * 0.8, true, ["#030d14", "#084442", "#0a4049"]/*["#030d14", "#0a3429", "#0a2f2b"]*/)); sprite[SPRITE.DRIED_PUMPKIN] = []; sprite[SPRITE.DRIED_PUMPKIN][SPRITE.DAY] = CTI(create_pumpkin(scale * 0.5, true, ["#1b170c", "#68622D", "#665329", "#5e5823", "#86683e", "#6e502d"])); sprite[SPRITE.DRIED_PUMPKIN][SPRITE.NIGHT] = CTI(create_pumpkin(scale * 0.5, true, ["#030d14", "#0F3A24", "#083326", "#0c301e", "#062a1f", "#083b2b"])); sprite[SPRITE.DRIED_GARLIC] = []; sprite[SPRITE.DRIED_GARLIC][SPRITE.DAY] = CTI(create_garlic(scale * 0.5, true, ["#1b170c", "#adbe9e", "#7e9178", "#84aa84", "#527556"])); sprite[SPRITE.DRIED_GARLIC][SPRITE.NIGHT] = CTI(create_garlic(scale * 0.5, true, ["#030d14", "#164a44", "#124244", "#13373b", "#133e3e"])); sprite[SPRITE.DRIED_THORNBUSH] = []; sprite[SPRITE.DRIED_THORNBUSH][SPRITE.DAY] = CTI(create_brambles(scale * 0.5, true, ["#1b170c", "#7a9160", "#4a5e3c", "#637e5a", "#c5cfc0", "#8a9685"])); sprite[SPRITE.DRIED_THORNBUSH][SPRITE.NIGHT] = CTI(create_brambles(scale * 0.5, true, ["#030d14", "#3e5d5b", "#2f4442", "#354e4c", "#637d7c", "#556b6a"])); // Christmas sprite[SPRITE.GIFT] = []; sprite[SPRITE.GIFT][SPRITE.DAY] = CTI(create_present(scale * 0.45, true, ["#0e3022", "#ac222a", "#98171e", "#22a84f", "#1f924a"])); sprite[SPRITE.GIFT][SPRITE.NIGHT] = CTI(create_present(scale * 0.45, true, ["#0e3022", "#19386e", "#0b2752", "#124252", "#0d3441"])); sprite[SPRITE.HURT_GIFT] = CTI(create_present(scale * 0.65, true, ["rgba(14, 48, 34, 0)", "#BB0000", "#BB0000", "#BB0000", "#BB0000"])); sprite[SPRITE.FRUIT] = []; sprite[SPRITE.FRUIT][SPRITE.DAY] = CTI(create_fruit(scale * 1.4, false, /*["#54318e", "#725ba3"]*//* ["#3d2a6e","#8255b5"] */["#ac222a", "#e6636a"])); sprite[SPRITE.FRUIT][SPRITE.NIGHT] = CTI(create_fruit(scale * 1.4, false, /*["#2f195e", "#5b498c"]*//* ["#26124f", "#524082"] */["#46195e", "#744188"])); sprite[SPRITE.FIRE] = []; sprite[SPRITE.FIRE][SPRITE.DAY] = CTI(create_fire(scale * 0.9, false, ["#efd435", "#ec8d35", "#e96132"])); sprite[SPRITE.FIRE][SPRITE.NIGHT] = CTI(create_fire(scale * 0.9, false, ["#efdb7b", "#efe854", "#e8ef62"])); sprite[ItemType.BIG_FIRE] = []; sprite[ItemType.BIG_FIRE][SPRITE.DAY] = CTI(create_big_fire_wood(scale * 0.9, false, ["#4d2d14", "#432516"])); sprite[ItemType.BIG_FIRE][SPRITE.NIGHT] = CTI(create_big_fire_wood(scale * 0.9, false, ["#282404", "#0a0a01"])); sprite[ItemType.FIRE] = []; sprite[ItemType.FIRE][SPRITE.DAY] = CTI(create_wood_fire(scale * 0.9, false, ["#4d2d14", "#432516"])); sprite[ItemType.FIRE][SPRITE.NIGHT] = CTI(create_wood_fire(scale * 0.9, false, ["#282404", "#0a0a01"])); sprite[SPRITE.HALO_FIRE] = []; sprite[SPRITE.HALO_FIRE][SPRITE.DAY] = CTI(create_halo_fire(scale * 0.9, false, ["#efd435"])); sprite[SPRITE.HALO_FIRE][SPRITE.NIGHT] = CTI(create_halo_fire(scale * 0.9, false, ["#fffabb"])); sprite[SPRITE.GROUND_FIRE] = []; sprite[SPRITE.GROUND_FIRE][SPRITE.DAY] = CTI(create_ground_fire(scale * 0.9, false, ["#efd435"])); sprite[SPRITE.GROUND_FIRE][SPRITE.NIGHT] = CTI(create_ground_fire(scale * 0.9, false, ["#fffabb"])); sprite[SPRITE.HALO_FIRE_PUMPKIN] = []; sprite[SPRITE.HALO_FIRE_PUMPKIN][SPRITE.DAY] = CTI(create_halo_fire(scale * 0.9, false, ["#efd435"])); sprite[SPRITE.HALO_FIRE_PUMPKIN][SPRITE.NIGHT] = CTI(create_halo_fire(scale * 0.9, false, ["rgba(255, 84, 0, 1)"])); sprite[SPRITE.GROUND_FIRE_PUMPKIN] = []; sprite[SPRITE.GROUND_FIRE_PUMPKIN][SPRITE.DAY] = CTI(create_ground_fire(scale * 0.9, false, ["#efd435"])); sprite[SPRITE.GROUND_FIRE_PUMPKIN][SPRITE.NIGHT] = CTI(create_ground_fire(scale * 0.9, false, ["#ff5704"])); sprite[SPRITE.GEAR] = CTI(create_gear(scale, "#ffffff", 1)); sprite[SPRITE.GEAR2] = CTI(create_gear(scale * 1.5, "#ffffff", 1)); sprite[SPRITE.YOUR_SCORE] = CTI(create_text(scale, "Your score:", 15 * scale, "#FFF")); sprite[SPRITE.WINDMILL_CASES] = CTI(create_windmill_chest(scale * 0.9, ["#596560", "#394841", "#543B1C", "#694D28", "#4D3C1A", "#694D28", "#DEE2E0", "#CDCCCC", "#7B5A31", "#7E8A85"])); sprite[SPRITE.EXTRACTOR_CASES] = IMAGES.EXTRACTOR_CASES; sprite[ItemType.WINDMILL] = []; sprite[ItemType.WINDMILL][SPRITE.DAY] = CTI(create_windmill(scale * 1.5, true, ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"])); sprite[ItemType.WINDMILL][SPRITE.NIGHT] = CTI(create_windmill(scale * 1.5, true, ["#030d14", "#163A3A", "#214C4B", "#1a4545", "#225755", "#07393D", "#07454a", "#0c484d", "#163A3A", "#214C4B"])); sprite[SPRITE.WINDMILL_WINGS] = []; sprite[SPRITE.WINDMILL_WINGS][SPRITE.DAY] = CTI(create_windmill_wing(scale * 2, true, ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"])); sprite[SPRITE.WINDMILL_WINGS][SPRITE.NIGHT] = CTI(create_windmill_wing(scale * 2, true, ["#030d14", "#163A3A", "#214C4B", "#1a4545", "#225755", "#07393D", "#07454a", "#0c484d", "#163A3A", "#214C4B"])); sprite[SPRITE.WINDMILL_HEAD] = []; sprite[SPRITE.WINDMILL_HEAD][SPRITE.DAY] = CTI(create_windmill_head(scale * 1.5, true, ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"])); sprite[SPRITE.WINDMILL_HEAD][SPRITE.NIGHT] = CTI(create_windmill_head(scale * 1.5, true, ["#030d14", "#163A3A", "#214C4B", "#1a4545", "#225755", "#07393D", "#07454a", "#0c484d", "#163A3A", "#214C4B"])); sprite[ItemType.WHEAT] = []; sprite[ItemType.WHEAT][SPRITE.DAY] = CTI(create_wheat(scale * 2.2, true, ["#A89F67", "#9E8456"])); sprite[ItemType.WHEAT][SPRITE.NIGHT] = CTI(create_wheat(scale * 2.2, true, ["#0B4049", "#08383D"])); sprite[SPRITE.DRIED_WHEAT] = []; sprite[SPRITE.DRIED_WHEAT][SPRITE.DAY] = CTI(create_wheat(scale * 2.2, true, ["#68622D", "#665329"])); sprite[SPRITE.DRIED_WHEAT][SPRITE.NIGHT] = CTI(create_wheat(scale * 2.2, true, ["#0F3A24", "#083326"])); sprite[SPRITE.WHEAT_MOB] = []; sprite[SPRITE.WHEAT_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#A89F67", "#9E8456"])); sprite[SPRITE.WHEAT_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#15514F", "#0F3F3D"])); sprite[SPRITE.PUMPKIN_SEED_MOB] = []; sprite[SPRITE.PUMPKIN_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#c67933", "#b17238"])); sprite[SPRITE.PUMPKIN_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#043c37", "#032b23"])); sprite[SPRITE.ALOE_VERA_SEED_MOB] = []; sprite[SPRITE.ALOE_VERA_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#3a8214", "#4a9c1e"])); sprite[SPRITE.ALOE_VERA_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#032d29", "#044640"])); sprite[SPRITE.GARLIC_SEED_MOB] = []; sprite[SPRITE.GARLIC_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#e8e8e8", "#bbbbbb"])); sprite[SPRITE.GARLIC_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#1c6161", "#07413f"])); sprite[SPRITE.THORNBUSH_SEED_MOB] = []; sprite[SPRITE.THORNBUSH_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#328a56", "#449573"])); sprite[SPRITE.THORNBUSH_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#043c37", "#032b23"])); sprite[SPRITE.CARROT_SEED_MOB] = []; sprite[SPRITE.CARROT_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#c98e2f", "#a36b11"])); sprite[SPRITE.CARROT_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#043c37", "#032b23"])); sprite[SPRITE.TOMATO_SEED_MOB] = []; sprite[SPRITE.TOMATO_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#b22419", "#99110e"])); sprite[SPRITE.TOMATO_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#04323c", "#03222b"])); sprite[SPRITE.WATERMELON_SEED_MOB] = []; sprite[SPRITE.WATERMELON_SEED_MOB][SPRITE.DAY] = CTI(create_seed(scale * 0.8, true, ["#13a56d", "#098a58"])); sprite[SPRITE.WATERMELON_SEED_MOB][SPRITE.NIGHT] = CTI(create_seed(scale * 0.8, true, ["#043c37", "#032b23"])); sprite[SPRITE.WINDMILL_WHEAT_SEED] = create_craft_button(1, [{ f: create_wheat, x: 0, y: 0, a: 1, r: 0, c: ["#A89F67", "#9E8456"] }], 1.2, ["#d2c77b", "#e7dc8f", "#bfb360"], 0.7); sprite[SPRITE.BREAD_OVEN_WOOD] = create_craft_button(1, [{ f: create_wood_fire, x: 0, y: 0, a: 1, r: -window.Math.PI / 5, c: ["#4d2d14", "#432516"] }], 0.3, ["#d2c77b", "#e7dc8f", "#bfb360"], 0.7); sprite[SPRITE.BREAD_OVEN_BREAD] = create_craft_button(1, [{ f: create_bread, x: 0, y: -5, a: 1, r: 0, c: ["#1d051e", "#bf8d51", "#7d5133", "#e8d6bf", "#e0c8a9", "#ab7a3f"] }], 0.15, ["#d2c77b", "#e7dc8f", "#bfb360"], 0.7); sprite[SPRITE.EMPTY_SLOT] = create_craft_button(0.9, [], 0.30, /*["#2b5c48", "#2b5c48", "#2b5c48"]*/["#2b5c48", "#2b5c48", "#2b5c48"], 0.5); sprite[ItemType.BERRY_SEED] = []; sprite[ItemType.BERRY_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#7d613e", "#9e7e5a"])); sprite[ItemType.BERRY_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#084442", "#125e5a"])); sprite[ItemType.WHEAT_SEED] = []; sprite[ItemType.WHEAT_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#9E8456", "#A89F67"])); sprite[ItemType.WHEAT_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#1b6f6a", "#0d4e4c"])); sprite[SPRITE.WHEAT_SEED_DRIED] = []; sprite[SPRITE.WHEAT_SEED_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#665329", "#68622D"])); sprite[SPRITE.WHEAT_SEED_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#083326", "#0F3A24"])); sprite[ItemType.PUMPKIN_SEED] = []; sprite[ItemType.PUMPKIN_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#c67933", "#ec952d"])); sprite[ItemType.PUMPKIN_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#0e6553", "#094437"])); sprite[ItemType.ALOE_VERA_SEED] = []; sprite[ItemType.ALOE_VERA_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#375809", "#4b770e"])); sprite[ItemType.ALOE_VERA_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#09542d", "#0d5d2f"])); sprite[SPRITE.PLANT_ALOE_VERA_DRIED] = []; sprite[SPRITE.PLANT_ALOE_VERA_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#585809", "#72770e"])); sprite[SPRITE.PLANT_ALOE_VERA_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#295209", "#305d0d"])); sprite[ItemType.GARLIC_SEED] = []; sprite[ItemType.GARLIC_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#b9b094", "#e2d2c0"])); sprite[ItemType.GARLIC_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#126366", "#0d484b"])); sprite[ItemType.THORNBUSH_SEED] = []; sprite[ItemType.THORNBUSH_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#3f8662", "#30915d"])); sprite[ItemType.THORNBUSH_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#0e6553", "#094437"])); sprite[SPRITE.PLANT_PUMPKIN_DRIED] = []; sprite[SPRITE.PLANT_PUMPKIN_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#c79153", "#dfa868"])); sprite[SPRITE.PLANT_PUMPKIN_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#073927", "#075040"])); sprite[SPRITE.PLANT_GARLIC_DRIED] = []; sprite[SPRITE.PLANT_GARLIC_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#768b5b", "#819984"])); sprite[SPRITE.PLANT_GARLIC_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#0c4540", "#0e5153"])); sprite[SPRITE.PLANT_THORNBUSH_DRIED] = []; sprite[SPRITE.PLANT_THORNBUSH_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#567465", "#627c6e"])); sprite[SPRITE.PLANT_THORNBUSH_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#073927", "#075040"])); sprite[ItemType.CARROT_SEED] = []; sprite[ItemType.CARROT_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#996b3a", "#bf956b"])); sprite[ItemType.CARROT_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#0e6553", "#094437"])); sprite[SPRITE.PLANT_CARROT_DRIED] = []; sprite[SPRITE.PLANT_CARROT_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#7a634a", "#a68f77"])); sprite[SPRITE.PLANT_CARROT_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#1e4d43", "#113c32"])); sprite[ItemType.TOMATO_SEED] = []; sprite[ItemType.TOMATO_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#99403c", "#bc796c"])); sprite[ItemType.TOMATO_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#1e434d", "#11303c"])); sprite[SPRITE.PLANT_TOMATO_DRIED] = []; sprite[SPRITE.PLANT_TOMATO_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#88504e", "#b3857c"])); sprite[SPRITE.PLANT_TOMATO_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#253b41", "#162930"])); sprite[ItemType.WATERMELON_SEED] = []; sprite[ItemType.WATERMELON_SEED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#0f8870", "#23af93"])); sprite[ItemType.WATERMELON_SEED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#032829", "#083233"])); sprite[SPRITE.PLANT_WATERMELON_DRIED] = []; sprite[SPRITE.PLANT_WATERMELON_DRIED][SPRITE.DAY] = CTI(create_plant_seed(scale * 0.9, false, ["#618a20", "#84a74e"])); sprite[SPRITE.PLANT_WATERMELON_DRIED][SPRITE.NIGHT] = CTI(create_plant_seed(scale * 0.9, false, ["#1f4632", "#335d47"])); sprite[ItemType.WORKBENCH] = []; sprite[ItemType.WORKBENCH][SPRITE.DAY] = CTI(create_workbench(scale * 1.2, true, ["#0d1b1c", "#4d2d14", "#432516", "#756e52", "#663f22", "#9e9577"])); sprite[ItemType.WORKBENCH][SPRITE.NIGHT] = CTI(create_workbench(scale * 1.2, true, ["#030d14", "#0d2e33", "#072322", "#3e706b", "#123d3f", "#4e827c"])); sprite[ItemType.WOOD_WALL] = [], sprite[ItemType.WOOD_WALL][SPRITE.DAY] = CTI(create_wall(scale * 1, true, ["#0d1b1c", "#4c3a15", "#634828", "#564021", "#634828", "#4c3a15"])); sprite[ItemType.WOOD_WALL][SPRITE.NIGHT] = CTI(create_wall(scale * 1, true, ["#030d14", "#0d2e33", "#184747", "#123b3f", "#0d2e33", "#174444"])); sprite[ItemType.DIAMOND_WALL] = [], sprite[ItemType.DIAMOND_WALL][SPRITE.DAY] = CTI(create_wall_diamond(scale * 1, true, ["#0d1b1c", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"])); sprite[ItemType.DIAMOND_WALL][SPRITE.NIGHT] = CTI(create_wall_diamond(scale * 1, true, ["#030d14", "#2b9390", "#43b5af", "#43b5af", "#4bbcb4", "#83ddd4", "#59c9c0"])); sprite[ItemType.AMETHYST_WALL] = [], sprite[ItemType.AMETHYST_WALL][SPRITE.DAY] = CTI(create_wall_stone(scale * 1, true, ["#0d1b1c", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"])); sprite[ItemType.AMETHYST_WALL][SPRITE.NIGHT] = CTI(create_wall_stone(scale * 1, true, ["#030d14", "#8359d3", "#764eb5", "#8f65de", "#7f55cc", "#9d77e6"])); sprite[ItemType.STONE_WALL] = [], sprite[ItemType.STONE_WALL][SPRITE.DAY] = CTI(create_wall_stone(scale * 1, true, ["#0d1b1c", "#6a7570", "#939995", "#9baaa3", "#adbcb5", "#8a938e"])); sprite[ItemType.STONE_WALL][SPRITE.NIGHT] = CTI(create_wall_stone(scale * 1, true, ["#030d14", "#163a3a", "#214c4b", "#1f4948", "#295957", "#1f5955"])); sprite[ItemType.GOLD_WALL] = [], sprite[ItemType.GOLD_WALL][SPRITE.DAY] = CTI(create_wall_gold(scale * 1, true, ["#0d1b1c", "#877d36", "#a08f47", "#a7983c", "#b29e4d", "#c1b06b"])); sprite[ItemType.GOLD_WALL][SPRITE.NIGHT] = CTI(create_wall_gold(scale * 1, true, ["#030d14", "#1f4948", "#215e55", "#1f6058", "#2a7773", "#2c7a70"])); sprite[ItemType.WOOD_SPIKE] = [], sprite[ItemType.WOOD_SPIKE][SPRITE.DAY] = CTI(create_spike(scale * 0.8, true, ["#0d1b1c", "#5f6061", "#939393", "#4c3a15", "#634828", "#564021", "#634828", "#4c3a15"])); sprite[ItemType.WOOD_SPIKE][SPRITE.NIGHT] = CTI(create_spike(scale * 0.8, true, ["#030d14", "#1f343f", "#485e66", "#0d2e33", "#184747", "#123b3f", "#0d2e33", "#174444"])); sprite[ItemType.GOLD_SPIKE] = [], sprite[ItemType.GOLD_SPIKE][SPRITE.DAY] = CTI(create_spike_gold(scale * 0.8, true, ["#0d1b1c", "#69685a", "#9c9683", "#877d36", "#a08f47", "#a7983c", "#b29e4d", "#c1b06b"])); sprite[ItemType.GOLD_SPIKE][SPRITE.NIGHT] = CTI(create_spike_gold(scale * 0.8, true, ["#030d14", "#1a3732", "#1e544c", "#1f4948", "#215e55", "#1f6058", "#2a7773", "#2c7a70"])); sprite[ItemType.DIAMOND_SPIKE] = [], sprite[ItemType.DIAMOND_SPIKE][SPRITE.DAY] = CTI(create_spike_diamond(scale * 0.8, true, ["#0d1b1c", "#7d8b90", "#9facaa", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"])); sprite[ItemType.DIAMOND_SPIKE][SPRITE.NIGHT] = CTI(create_spike_diamond(scale * 0.8, true, ["#030d14", "#2c4b55", "#546d77", "#2b9390", "#43b5af", "#43b5af", "#4bbcb4", "#83ddd4", "#59c9c0"])); sprite[ItemType.STONE_SPIKE] = [], sprite[ItemType.STONE_SPIKE][SPRITE.DAY] = CTI(create_spike_stone(scale * 0.8, true, ["#0d1b1c", "#6a7570", "#939393", "#6a7570", "#939995", "#9baaa3", "#adbcb5", "#8a938e"])); sprite[ItemType.STONE_SPIKE][SPRITE.NIGHT] = CTI(create_spike_stone(scale * 0.8, true, ["#030d14", "#1f343f", "#485e66", "#163a3a", "#214c4b", "#1f4948", "#295957", "#1f5955"])); sprite[ItemType.AMETHYST_SPIKE] = [], sprite[ItemType.AMETHYST_SPIKE][SPRITE.DAY] = CTI(create_spike_stone(scale * 0.8, true, ["#0d1b1c", "#6a7570", "#939393", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"])); sprite[ItemType.AMETHYST_SPIKE][SPRITE.NIGHT] = CTI(create_spike_stone(scale * 0.8, true, ["#030d14", "#1f343f", "#485e66", "#8359d3", "#764eb5", "#8f65de", "#7f55cc", "#9d77e6"])); sprite[ItemType.WOOD_DOOR] = []; sprite[ItemType.WOOD_DOOR][SPRITE.DAY] = CTI(create_door_wood(scale * 1.5, true, ["#0d1b1c", "#4c3b19", "#574122", "#644928", "#574122", "#735534", "#23a54e", "#1f934a", "#208e48", "#b12c2a", "#9c2625", "#ebd6a4", "#cca73f"])); sprite[ItemType.WOOD_DOOR][SPRITE.NIGHT] = CTI(create_door_wood(scale * 1.5, true, ["#030d14", "#0d2e33", "#184747", "#123b3f", "#0d2e33", "#174444"])); sprite[ItemType.STONE_DOOR] = []; sprite[ItemType.STONE_DOOR][SPRITE.DAY] = CTI(create_door_stone(scale * 1.5, true, ["#0d1b1c", "#6a7570", "#939995", "#9baaa3", "#8a938e", "#adbcb5"])); sprite[ItemType.STONE_DOOR][SPRITE.NIGHT] = CTI(create_door_stone(scale * 1.5, true, ["#030d14", "#163a3a", "#214c4b", "#1f4948", "#164542", "#295957"])); sprite[ItemType.GOLD_DOOR] = []; sprite[ItemType.GOLD_DOOR][SPRITE.DAY] = CTI(create_door_gold(scale * 1.5, true, ["#0d1b1c", "#877d36", "#a08f47", "#a7983c", "#9a8636", "#c1b06b"])); sprite[ItemType.GOLD_DOOR][SPRITE.NIGHT] = CTI(create_door_gold(scale * 1.5, true, ["#030d14", "#1f4948", "#215e55", "#1f6058", "#1f605c", "#2c7a70"])); sprite[ItemType.DIAMOND_DOOR] = []; sprite[ItemType.DIAMOND_DOOR][SPRITE.DAY] = CTI(create_door_diamond(scale * 1.5, true, ["#0d1b1c", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"])); sprite[ItemType.DIAMOND_DOOR][SPRITE.NIGHT] = CTI(create_door_diamond(scale * 1.5, true, ["#030d14", "#2b9390", "#43b5af", "#43b5af", "#4bbcb4", "#83ddd4", "#59c9c0"])); sprite[ItemType.AMETHYST_DOOR] = []; sprite[ItemType.AMETHYST_DOOR][SPRITE.DAY] = CTI(create_door_stone(scale * 1.5, true, ["#0d1b1c", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"])); sprite[ItemType.AMETHYST_DOOR][SPRITE.NIGHT] = CTI(create_door_stone(scale * 1.5, true, ["#030d14", "#8359d3", "#764eb5", "#8f65de", "#7f55cc", "#9d77e6"])); sprite[ItemType.CHEST] = []; sprite[ItemType.CHEST][SPRITE.DAY] = CTI(create_chest(scale * 0.5, true, ["#133a2b", "#9e8838", "#c4a23a", "#4c3b19", "#614627", "#614627", "#614627", "#c4a23a", "#c4a23a", "#c4a23a"])); sprite[ItemType.CHEST][SPRITE.NIGHT] = CTI(create_chest(scale * 0.5, true, ["#032428", "#266161", "#2b6664", "#123335", "#1f5453", "#1f5453", "#1f5453", "#2b6664", "#2b6664", "#2b6664"])); sprite[ItemType.CHEST][2] = CTI(create_chest(.5, !0, "#4d0000 #4d0000 #4d0000 #4d0000 #4d0000 #614627 #614627 #c4a23a #c4a23a #c4a23a".split(" "))); sprite[SPRITE.TREASURE_CHEST] = []; sprite[SPRITE.TREASURE_CHEST][SPRITE.DAY] = CTI(create_treasure_chest(scale * 0.5, ["#133a2b", "#9e8838", "#c4a23a", "#4c3b19", "#614627"])); sprite[SPRITE.TREASURE_CHEST][SPRITE.NIGHT] = CTI(create_treasure_chest(scale * 0.5, ["#032428", "#266161", "#2b6664", "#123335", "#1f5453"])); sprite[SPRITE.RABBIT] = []; sprite[SPRITE.RABBIT][SPRITE.DAY] = CTI(create_rabbit(scale * 0.9, ["#0e3022", "#ee97bf", "#FFFFFF", "#000000", "#ffffff"])); sprite[SPRITE.RABBIT][SPRITE.NIGHT] = CTI(create_rabbit(scale * 0.9, ["#030d14", "#4d1b59", "#5d3f77", "#220e26", "#ffffff"])); sprite[SPRITE.SPIDER] = []; sprite[SPRITE.SPIDER][SPRITE.DAY] = CTI(create_rotated_img(window.Math.PI, create_spider(scale * 0.9, ["#000000", "#b7252c", "#b7252c", "#b7252c", "#FFFFFF", "#000000"]))); sprite[SPRITE.SPIDER][SPRITE.NIGHT] = CTI(create_rotated_img(window.Math.PI, create_spider(scale * 0.9, ["#030d14", "#401d49", "#b7252c", "#401d49", "#FFFFFF", "#000000"]))); sprite[SPRITE.WEB] = CTI(create_web(scale * 0.6, ["#FFFFFF"])); sprite[SPRITE.WOLF] = []; sprite[SPRITE.WOLF][SPRITE.DAY] = CTI(create_wolf(scale * 1.1, ["#0e3022", "#231f20", "#b7252c", "#7d7679", "#ffffff"])); sprite[SPRITE.WOLF][SPRITE.NIGHT] = CTI(create_wolf(scale * 1.1, ["#030d14", "#1e181c", "#462966", "#3e3e4a", "#ffffff"])); sprite[ItemType.EARMUFFS] = []; sprite[ItemType.EARMUFFS][SPRITE.DAY] = CTI(create_earmuff(scale * 0.6, true, ["#f9efeb", "#dfd1cb", "#3e3c25", "#4d4a2e"])); sprite[ItemType.EARMUFFS][SPRITE.NIGHT] = CTI(create_earmuff(scale * 0.6, true, ["#478e8b", "#327e73", "#073030", "#08403f"])); sprite[ItemType.COAT] = []; sprite[ItemType.COAT][SPRITE.DAY] = CTI(create_coat(scale * 0.6, true, ["#3e3c25", "#4d4a2e", "#f9efeb", "#dfd1cb"])); sprite[ItemType.COAT][SPRITE.NIGHT] = CTI(create_coat(scale * 0.6, true, ["#073030", "#08403f", "#478e8b", "#327e73"])); sprite[ItemType.CAP_SCARF] = []; sprite[ItemType.CAP_SCARF][SPRITE.DAY] = CTI(create_cap_scarf(scale * 0.63, true, ["#171a19", "#dee7e7", "#b8cccb", "#ffffff", "#e3e8e8"])); sprite[ItemType.CAP_SCARF][SPRITE.NIGHT] = CTI(create_cap_scarf(scale * 0.63, true, ["#073030", "#368981", "#1c635e", "#7bbab4", "#469e95"])); /*WINTER*/ // Christmas sprite[ItemType.CHRISTMAS_HAT] = []; sprite[ItemType.CHRISTMAS_HAT][SPRITE.DAY] = CTI(create_christmas_hat(scale * 0.6, true, ["#171a19", "#c5232c", "#84191d", "#a72027", "#fef4f4", "#e9dad9"])); sprite[ItemType.CHRISTMAS_HAT][SPRITE.NIGHT] = CTI(create_christmas_hat(scale * 0.6, true, ["#073030", "#392966", "#2a194f", "#433379", "#66aaa3", "#469e95"])); sprite[ItemType.ELF_HAT] = []; sprite[ItemType.ELF_HAT][SPRITE.DAY] = CTI(create_elf_hat(scale * 0.6, true, ["#171a19", "#0f964c", "#106e3b", "#138344", "#fef4f4", "#e9dad9", "#C5232C", "#A92D2D"])); sprite[ItemType.ELF_HAT][SPRITE.NIGHT] = CTI(create_elf_hat(scale * 0.6, true, ["#073030", "#124949", "#0e3838", "#15514f", "#66aaa3", "#469e95", "#292f66", "#202559"])); sprite[SPRITE.BREAD_OVEN_ON] = []; sprite[SPRITE.BREAD_OVEN_ON][SPRITE.DAY] = CTI(create_bread_oven(scale * 0.42, true, ["#0d1b1c", "#515C57", "#3A4942", "#68736F", "#C1C0C0", "#be8d50", "#7d5234", "#222825", "#4D5752", "#e48727", "#d4a872", "#343d39"])); sprite[SPRITE.BREAD_OVEN_ON][SPRITE.NIGHT] = CTI(create_bread_oven(scale * 0.42, true, ["#0d1b1c", "#485E66", "#1F343F", "#60757D", "#C1C0C0", "#be8d50", "#7d5234", "#1F343F", "#344B51", "#D8E57F", "#dfa64e", "#192225"])); sprite[SPRITE.BREAD_LIGHT_UP] = []; sprite[SPRITE.BREAD_LIGHT_UP][SPRITE.DAY] = CTI(create_bread_light_up(scale * 0.9, ["#e4c027"])); sprite[SPRITE.BREAD_LIGHT_UP][SPRITE.NIGHT] = CTI(create_bread_light_up(scale * 0.9, ["#D8E57F"])); sprite[ItemType.BREAD_OVEN] = []; sprite[ItemType.BREAD_OVEN][SPRITE.DAY] = CTI(create_bread_oven_off(scale * 0.42, true, ["#0d1b1c", "#515C57", "#3A4942", "#68736F", "#C1C0C0", "#be8d50", "#7d5234", "#222825", "#4D5752", "#e48727", "#d4a872", "#232a27"])); sprite[ItemType.BREAD_OVEN][SPRITE.NIGHT] = CTI(create_bread_oven_off(scale * 0.42, true, ["#0d1b1c", "#485E66", "#1F343F", "#60757D", "#C1C0C0", "#be8d50", "#7d5234", "#1F343F", "#344B51", "#D8E57F", "#dfa64e", "#1b2529"])); sprite[SPRITE.BREAD_OVEN_UI] = CTI(create_bread_oven_ui(scale * 1, ["#596560", "#394841", "#543B1C", "#694D28", "#7E8A85", "#384740", "#525956"])); sprite[SPRITE.FURNACE_ON] = []; sprite[SPRITE.FURNACE_ON][SPRITE.DAY] = CTI(create_furnace_on(scale * 0.5, true, ["#0d1b1c", "#939393", "#5f6061", "#c0c0c0", "#ffad22", "#fffdd5", "#fee764"])); sprite[SPRITE.FURNACE_ON][SPRITE.NIGHT] = CTI(create_furnace_on(scale * 0.5, true, ["#0d1b1c", "#485e66", "#1f343f", "#60757d", "#ffdc73", "#fffce2", "#fef259"])); sprite[ItemType.FURNACE] = []; sprite[ItemType.FURNACE][SPRITE.DAY] = CTI(create_furnace_off(scale * 0.5, true, ["#0d1b1c", "#939393", "#5f6061", "#c0c0c0", "#4f4f4f", "#6c6c6c", "#454545"])); sprite[ItemType.FURNACE][SPRITE.NIGHT] = CTI(create_furnace_off(scale * 0.5, true, ["#0d1b1c", "#485e66", "#1f343f", "#60757d", "#152229", "#0c1113", "#0c1113"])); sprite[SPRITE.FURNACE_SLOT] = CTI(create_furnace_slot(scale * 0.8, true, ["#5f6061", "#939393"]/*["#8f471d", "#a65f15"]*/)); sprite[SPRITE.FURNACE_BUTTON] = create_craft_button(1, [{ f: create_wood_fire, x: 0, y: 0, a: 1, r: window.Math.PI / 2.5, c: ["#4d2d14", "#432516"] }], 0.3, ["#494949", "#5b5858", "#3d3b3b"]/*["#c88241", "#d1713a", "#a75a2d"]*/, 1); sprite[ItemType.BED] = []; sprite[ItemType.BED][SPRITE.DAY] = CTI(create_bed(scale * 1, true, ["#0d1b1c", "#554139", "#3f332a", "#261912", "#eee6c5", "#d1c599", "#554139", "#3f332a", "#86509b", "#703a99"])); sprite[ItemType.BED][SPRITE.NIGHT] = CTI(create_bed(scale * 1, true, ["#0d1b1c", "#0b3432", "#092b29", "#052120", "#104d5b", "#0b424f", "#0b3432", "#092b29", "#2b0b4a", "#23073e"])); sprite[SPRITE.BED_TOP] = []; sprite[SPRITE.BED_TOP][SPRITE.DAY] = CTI(create_bed_top(scale * 1, true, ["#0d1b1c", "#554139", "#3f332a", "#261912", "#eee6c5", "#d1c599", "#554139", "#3f332a", "#86509b", "#703a99"])); sprite[SPRITE.BED_TOP][SPRITE.NIGHT] = CTI(create_bed_top(scale * 1, true, ["#0d1b1c", "#0b3432", "#092b29", "#052120", "#104d5b", "#083b37", "#0b3432", "#092b29", "#2b0b4a", "#23073e"])); sprite[ItemType.CRAB_SPEAR] = []; sprite[ItemType.CRAB_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_crab_spear(scale * 0.7, true, ["#0d1b1c", "#58452b", "#47341d", "#ee593d", "#c04933", "#c04933", "#a33e2b", "#c3be9a", "#7f6d52"]))); sprite[ItemType.CRAB_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_crab_spear(scale * 0.7, true, ["#0d1b1c", "#0b3432", "#092b29", "#34255d", "#281b4e", "#2f2157", "#281b4e", "#104d5b", "#083b37"]))); sprite[ItemType.WOOD_SPEAR] = []; sprite[ItemType.WOOD_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_wood_spear(scale * 0.7, true, ["#0d1b1c", "#58452b", "#47341d", "#765d42", "#c3be9a", "#7f6d52"]))); sprite[ItemType.WOOD_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_wood_spear(scale * 0.7, true, ["#0d1b1c", "#0b3432", "#092b29", "#0e4d49", "#1a6c67", "#07322f"]))); sprite[ItemType.STONE_SPEAR] = []; sprite[ItemType.STONE_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_stonespear(scale * 0.65, true, ["#0d1b1c", "#4d2d14", "#432516", "#c3be9a", "#7f6d52", "#7a7575", "#454749", "#8c8787", "#939393", "#5f6061", "#aaa6a6"]))); sprite[ItemType.STONE_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_stonespear(scale * 0.65, true, ["#0d1b1c", "#0d2e33", "#0b2326", "#1a6c67", "#07322f", "#374950", "#101f26", "#2c3c42", "#485e66", "#1f343f", "#546e78"]))); sprite[ItemType.GOLD_SPEAR] = []; sprite[ItemType.GOLD_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_goldspear(scale * 0.67, true, ["#0d1b1c", "#493e26", "#382e19", "#a69e39", "#9c8828", "#bab143", "#c4bc51", "#b29c32", "#d2ca59"]))); sprite[ItemType.GOLD_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_goldspear(scale * 0.67, true, ["#030d14", "#263947", "#182935", "#33916d", "#197c62", "#3eab81", "#43aa82", "#29997c", "#52be94"]))); sprite[ItemType.DIAMOND_SPEAR] = []; sprite[ItemType.DIAMOND_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_diamondspear(scale * 0.67, true, ["#0d1b1c", "#262114", "#211108", "#4ba8b4", "#198a82", "#6ccad7", "#63c9d6", "#29aaa1", "#7bd9e6"]))); sprite[ItemType.DIAMOND_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_diamondspear(scale * 0.67, true, ["#0d1b1c", "#111316", "#0a0b0c", "#4bbbc3", "#23a19d", "#54c5cd", "#4ad2ce", "#3dc4c0", "#73dde5"]))); sprite[ItemType.AMETHYST_SPEAR] = []; sprite[ItemType.AMETHYST_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_amespear(scale * 0.67, true, ["#0d1b1c", "#262114", "#211108", "#9443b1", "#6f1988", "#a752c6", "#9e35be", "#8c29aa", "#b864d6"]))); sprite[ItemType.AMETHYST_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_amespear(scale * 0.67, true, ["#0d1b1c", "#111316", "#0a0b0c", "#6e43bf", "#673fa4", "#784bcc", "#845bc6", "#764eb5", "#966be7"]))); sprite[ItemType.DRAGON_SPEAR] = []; sprite[ItemType.DRAGON_SPEAR][SPRITE.DAY] = CTI(create_rotated_img(3, create_dragon_spear(scale * 1, true, ["#0d1b1c", "#1e2b34", "#151c24", "#99d7dd", "#7dcbd1", "#c6e8eb", "#aadee8", "#b7e2e5"]))); sprite[ItemType.DRAGON_SPEAR][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_dragon_spear(scale * 1, true, ["#0d1b1c", "#1c2026", "#0a0b0c", "#7dc6d9", "#6cbacf", "#87d2e6", "#49b2cf", "#87d2e6"]))); sprite[ItemType.STONE_HAMMER] = []; sprite[ItemType.STONE_HAMMER][SPRITE.DAY] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#4d2d14", "#432516", "#939393", "#5f6061"]))); sprite[ItemType.STONE_HAMMER][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#030d14", "#263947", "#182935", "#485e66", "#1f343f"]))); sprite[ItemType.WRENCH] = []; sprite[ItemType.WRENCH][SPRITE.DAY] = CTI(create_rotated_img(3, create_spanner(scale * 0.5, true, ["#0d1b1c", "#939393", "#5f6061"]))); sprite[ItemType.WRENCH][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_spanner(scale * 0.5, true, ["#030d14", "#485e66", "#1f343f"]))); sprite[ItemType.GOLD_WRENCH] = []; sprite[ItemType.GOLD_WRENCH][SPRITE.DAY] = CTI(create_rotated_img(3, create_spanner(scale * 0.5, true, ["#0d1b1c", "#939393", "#5f6061"]))); sprite[ItemType.GOLD_WRENCH][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_spanner(scale * 0.5, true, ["#030d14", "#485e66", "#1f343f"]))); sprite[ItemType.SUPER_HAMMER] = []; sprite[ItemType.SUPER_HAMMER][SPRITE.DAY] = CTI(create_rotated_img(3, create_superhammer(scale * 1, true, ["#0d1b1c", "#9b5927", "#7a3610", "#1e0302", "#0d825b", "#6bd16e", "#17915d", "#89e5aa", "#16935d", "#a0efc4", "#28b26d", "#cdf4cb"]))); sprite[ItemType.SUPER_HAMMER][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_superhammer(scale * 1, true, ["#0d1b1c", "#2a4f4a", "#1e423d", "#1e0302", "#096b3f", "#3db76f", "#118254", "#40c696", "#0c7a50", "#59d8a4", "#249376", "#80d8c7"]))); sprite[ItemType.GOLD_HAMMER] = []; sprite[ItemType.GOLD_HAMMER][SPRITE.DAY] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32"]))); sprite[ItemType.GOLD_HAMMER][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#0d2e33", "#0b2326", "#43aa82", "#29997c"]))); sprite[ItemType.DIAMOND_HAMMER] = []; sprite[ItemType.DIAMOND_HAMMER][SPRITE.DAY] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1"]))); sprite[ItemType.DIAMOND_HAMMER][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#111316", "#0a0b0c", "#73dde5", "#3dc4c0"]))); sprite[ItemType.AMETHYST_HAMMER] = []; sprite[ItemType.AMETHYST_HAMMER][SPRITE.DAY] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa"]))); sprite[ItemType.AMETHYST_HAMMER][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_hammer(scale * 1, true, ["#0d1b1c", "#111316", "#0a0b0c", "#8359d3", "#764eb5"]))); sprite[ItemType.LOCK] = []; sprite[ItemType.LOCK][SPRITE.DAY] = CTI(create_lock(scale * 0.55, false, ["#141414", "#816511", "#c4a23a", "#3a3a3a"])); sprite[ItemType.LOCK][SPRITE.NIGHT] = CTI(create_lock(scale * 0.55, false, ["#080707", "#133d3c", "#2b6664", "#1b2529"])); sprite[SPRITE.PADLOCK] = []; sprite[SPRITE.PADLOCK].push(CTI(create_lock(scale * 0.8, false, ["#141414", "#816511", "#c4a23a", "#3a3a3a"]))); sprite[SPRITE.PADLOCK].push(CTI(create_lock(scale * 0.8, false, ["#141414", "#9f7d17", "#dab33c", "#474545"]))); sprite[SPRITE.PADLOCK].push(CTI(create_lock(scale * 0.8, false, ["#141414", "#73590d", "#a88a2c", "#2a2828"]))); sprite[SPRITE.LOCKED] = []; sprite[SPRITE.LOCKED].push(sprite[SPRITE.PADLOCK][0]); sprite[SPRITE.LOCKED].push(sprite[SPRITE.PADLOCK][0]); sprite[SPRITE.LOCKED].push(sprite[SPRITE.PADLOCK][0]); sprite[ItemType.LOCK_PICK] = []; sprite[ItemType.LOCK_PICK][SPRITE.DAY] = CTI(create_lockpick(scale * 0.06, false, ["#141414", "#c4a23a", "#816511"])); sprite[ItemType.LOCK_PICK][SPRITE.NIGHT] = CTI(create_lockpick(scale * 0.06, false, ["#030d14", "#2b6664", "#133d3c"])); sprite[SPRITE.KEY] = []; sprite[SPRITE.KEY].push(CTI(create_lockpick(scale * 0.08, false, ["#141414", "#c4a23a", "#816511"]))); sprite[SPRITE.KEY].push(CTI(create_lockpick(scale * 0.08, false, ["#141414", "#e2bd4e", "#a38018"]))); sprite[SPRITE.KEY].push(CTI(create_lockpick(scale * 0.08, false, ["#141414", "#b0902e", "#634d09"]))); sprite[ItemType.DRAGON_HEART] = create_craft_button(1.5, [{ f: create_dragon_heart, x: 0, y: 0, a: 1, r: 0, c: ["#141414", "#178a99", "#0a6372", "#03282e"] }], 0.45, ["#5bbcc9", "#73d2df", "#4daab6"], 0.9); sprite[SPRITE.RESURRECTION_GROUND] = []; sprite[SPRITE.RESURRECTION_GROUND][SPRITE.DAY] = CTI(create_resurrection_ground(scale * 0.8, true, ["#347f93", "#54a4ba"])); sprite[SPRITE.RESURRECTION_GROUND][SPRITE.NIGHT] = CTI(create_resurrection_ground(scale * 0.8, true, ["#98ede3", "#94f2e7"])); sprite[SPRITE.RESURRECTION_HOLE] = []; sprite[SPRITE.RESURRECTION_HOLE][SPRITE.DAY] = CTI(create_resurrection_hole(scale * 0.8, true, ["#a9e4ed", "#86d4e0", "#418ba5", "#59b8ce"])); sprite[SPRITE.RESURRECTION_HOLE][SPRITE.NIGHT] = CTI(create_resurrection_hole(scale * 0.8, true, ["#59c9c0", "#83ddd4", "#3fa097", "#90ddd9"])); sprite[SPRITE.RESURRECTION_ROTATE] = []; sprite[SPRITE.RESURRECTION_ROTATE][SPRITE.DAY] = CTI(create_resurrection_rotate(scale * 0.8, true, ["#a9e4ed", "#86d4e0"])); sprite[SPRITE.RESURRECTION_ROTATE][SPRITE.NIGHT] = CTI(create_resurrection_rotate(scale * 0.8, true, ["#83ddd4", "#485e66"])); sprite[ItemType.RESURRECTION] = []; sprite[ItemType.RESURRECTION][SPRITE.DAY] = CTI(create_resurrection(scale * 0.8, true, ["#347f93", "#54a4ba", "#1c2528", "#a9e4ed", "#86d4e0", "#959da0", "#697072", "#929da0", "#afb9bc"])); sprite[ItemType.RESURRECTION][SPRITE.NIGHT] = CTI(create_resurrection(scale * 0.8, true, ["#98ede3", "#94f2e7", "#1f343f", "#59c9c0", "#83ddd4", "#485e66", "#2d484f", "#546d6d", "#597b84"])); sprite[SPRITE.EMERALD_MACHINE_GROUND] = []; sprite[SPRITE.EMERALD_MACHINE_GROUND][SPRITE.DAY] = IMAGES.EMERALD_MACHINE_GROUNDD; sprite[SPRITE.EMERALD_MACHINE_GROUND][SPRITE.NIGHT] = IMAGES.EMERALD_MACHINE_GROUNDN; sprite[SPRITE.EMERALD_MACHINE_HOLE] = []; sprite[SPRITE.EMERALD_MACHINE_HOLE][SPRITE.DAY] = IMAGES.EMERALD_MACHINE_HOLED; sprite[SPRITE.EMERALD_MACHINE_HOLE][SPRITE.NIGHT] = IMAGES.EMERALD_MACHINE_HOLEN; sprite[SPRITE.EMERALD_MACHINE_ROTATE] = []; sprite[SPRITE.EMERALD_MACHINE_ROTATE][SPRITE.DAY] = IMAGES.EMERALD_MACHINE_ROTATED; sprite[SPRITE.EMERALD_MACHINE_ROTATE][SPRITE.NIGHT] = IMAGES.EMERALD_MACHINE_ROTATEN; sprite[ItemType.EMERALD_MACHINE] = []; sprite[ItemType.EMERALD_MACHINE][SPRITE.DAY] = IMAGES.EMERALD_MACHINED; sprite[ItemType.EMERALD_MACHINE][SPRITE.NIGHT] = IMAGES.EMERALD_MACHINEN; sprite[SPRITE.EXTRACTOR_MACHINE0_STONE] = []; sprite[SPRITE.EXTRACTOR_MACHINE0_STONE][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE0_STONED; sprite[SPRITE.EXTRACTOR_MACHINE0_STONE][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE0_STONEN; sprite[ItemType.STONE_EXTRACTOR] = []; sprite[ItemType.STONE_EXTRACTOR][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE_STONED; sprite[ItemType.STONE_EXTRACTOR][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE_STONEN; sprite[SPRITE.EXTRACTOR_MACHINE0_GOLD] = []; sprite[SPRITE.EXTRACTOR_MACHINE0_GOLD][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE0_GOLDD; sprite[SPRITE.EXTRACTOR_MACHINE0_GOLD][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE0_GOLDN; sprite[ItemType.GOLD_EXTRACTOR] = []; sprite[ItemType.GOLD_EXTRACTOR][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE_GOLDD; sprite[ItemType.GOLD_EXTRACTOR][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE_GOLDN; sprite[SPRITE.EXTRACTOR_MACHINE0_DIAMOND] = []; sprite[SPRITE.EXTRACTOR_MACHINE0_DIAMOND][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE0_DIAMONDD; sprite[SPRITE.EXTRACTOR_MACHINE0_DIAMOND][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE0_DIAMONDN; sprite[ItemType.DIAMOND_EXTRACTOR] = []; sprite[ItemType.DIAMOND_EXTRACTOR][SPRITE.DAY] = IMAGES.DIAMOND_EXTRACTORD; sprite[ItemType.DIAMOND_EXTRACTOR][SPRITE.NIGHT] = IMAGES.DIAMOND_EXTRACTORN; sprite[SPRITE.EXTRACTOR_MACHINE0_AMETHYST] = []; sprite[SPRITE.EXTRACTOR_MACHINE0_AMETHYST][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE0_AMETHYSTD; sprite[SPRITE.EXTRACTOR_MACHINE0_AMETHYST][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE0_AMETHYSTN; sprite[ItemType.AMETHYST_EXTRACTOR] = []; sprite[ItemType.AMETHYST_EXTRACTOR][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE_AMETHYSTD; sprite[ItemType.AMETHYST_EXTRACTOR][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE_AMETHYSTN; sprite[SPRITE.EXTRACTOR_MACHINE0_REIDITE] = []; sprite[SPRITE.EXTRACTOR_MACHINE0_REIDITE][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE0_REIDITED; sprite[SPRITE.EXTRACTOR_MACHINE0_REIDITE][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE0_REIDITEN; sprite[ItemType.REIDITE_EXTRACTOR] = []; sprite[ItemType.REIDITE_EXTRACTOR][SPRITE.DAY] = IMAGES.EXTRACTOR_MACHINE_REIDITED; sprite[ItemType.REIDITE_EXTRACTOR][SPRITE.NIGHT] = IMAGES.EXTRACTOR_MACHINE_REIDITEN; sprite[SPRITE.FIREFLY] = []; sprite[SPRITE.FIREFLY][SPRITE.DAY] = IMAGES.FIREFLYD; sprite[SPRITE.FIREFLY][SPRITE.NIGHT] = IMAGES.FIREFLYN; sprite[SPRITE.HURT_FIREFLY] = IMAGES.HURT_FIREFLY; sprite[ItemType.TOTEM] = [], sprite[ItemType.TOTEM][SPRITE.DAY] = CTI(create_totem(scale * 0.75, true, ["#0d1b1c", "#4c3a15", "#634828", "#564021"])); sprite[ItemType.TOTEM][SPRITE.NIGHT] = CTI(create_totem(scale * 0.75, true, ["#030d14", "#0d2e33", "#184747", "#123b3f"])); sprite[SPRITE.ICON_MEMBER] = CTI(create_icon_team(scale * 0.3, ["#092813", "#1f773d"], 0)); sprite[SPRITE.ICON_LEADER] = CTI(create_icon_team(scale * 0.3, ["#092813", "#1f773d"], 1)); sprite[SPRITE.VERIFIED] = CTI(create_verified(scale * 0.6, ["#092813", "#1f773d"])); sprite[SPRITE.TEAM_BUTTON] = []; sprite[SPRITE.TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#092813", "#1f773d", "#165b2b", "#4c3a15", "#1f773d"], 0))); sprite[SPRITE.TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#0b3719", "#228745", "#1a7034", "#614a1a", "#238845"], 0))); sprite[SPRITE.TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#092a14", "#186733", "#124a23", "#4c3a15", "#1b6735"], 0))); sprite[SPRITE.FULL_TEAM_BUTTON] = []; var img = CTI(create_team_button(scale * 0.7, ["#280e09", "#77371f", "#280e09", "#2e2410", "#77371f"], 0)); sprite[SPRITE.FULL_TEAM_BUTTON].push(img); sprite[SPRITE.FULL_TEAM_BUTTON].push(img); sprite[SPRITE.FULL_TEAM_BUTTON].push(img); sprite[SPRITE.MANAGE_TEAM_BUTTON] = [] sprite[SPRITE.MANAGE_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#092813", "#1f773d", "#165b2b", "#4c3a15", "#1f773d"], 1))); sprite[SPRITE.MANAGE_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#0b3719", "#228745", "#1a7034", "#614a1a", "#238845"], 1))); sprite[SPRITE.MANAGE_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#092a14", "#186733", "#124a23", "#4c3a15", "#1b6735"], 1))); sprite[SPRITE.DELAY_SPIKE] = CTI(create_spiketimer(scale * 0.30, ["#FFFFFF"])); sprite[SPRITE.DELAY_WALL] = CTI(create_delay_wall(scale * 0.30, ["#FFFFFF"])); sprite[SPRITE.DELAY_TEAM] = CTI(create_icon_team(scale * 0.40, ["rgba(255, 255, 255, 0)", "#FFFFFF"], 0)); sprite[SPRITE.DELAY_DRINK] = CTI(create_rotated_img(window.Math.PI / 5, create_drink_delay(scale * 0.20, ["#FFFFFF"]))); sprite[ItemType.AMETHYST_HELMET] = [], sprite[ItemType.AMETHYST_HELMET][SPRITE.DAY] = CTI(create_amethyst_helmet(scale * 0.85, true, ["#0d1b1c", "#8c55b7", "#652d8e", "#79359e", "#5eccd1", "#4badad", "#9e6ac6"])); sprite[ItemType.AMETHYST_HELMET][SPRITE.NIGHT] = CTI(create_amethyst_helmet(scale * 0.85, true, ["#0d1b1c", "#4e4e93", "#393977", "#444187", "#2b9390", "#277a74", "#7da8db"])); sprite[SPRITE.SHOW_TEAM_BUTTON] = [] sprite[SPRITE.SHOW_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#280e09", "#77371f", "#280e09", "#2e2410", "#77371f"], 1))); sprite[SPRITE.SHOW_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#38130C", "#853D22", "#391402", "#3D3016", "#873E22"], 1))); sprite[SPRITE.SHOW_TEAM_BUTTON].push(CTI(create_team_button(scale * 0.7, ["#1C0A06", "#6B3019", "#1D0A06", "#251D0C", "#6A301A"], 1))); sprite[ItemType.HOOD] = [], sprite[ItemType.HOOD][SPRITE.DAY] = CTI(create_hood(scale * 0.37, true, ["#2a2938", "#242330", "#313041"])); sprite[ItemType.HOOD][SPRITE.NIGHT] = CTI(create_hood(scale * 0.37, true, ["#1b1e30", "#161921", "#252f3e"])); sprite[ItemType.WINTER_HOOD] = [], sprite[ItemType.WINTER_HOOD][SPRITE.DAY] = CTI(create_winter_hood(scale * 0.17, true, ["#2a2938", "#242330", "#313041", "#1b1a25", "#d62c0e"])); sprite[ItemType.WINTER_HOOD][SPRITE.NIGHT] = CTI(create_winter_hood(scale * 0.17, true, ["#1b1e30", "#161921", "#252f3e", "#0a0c11", "#d62c0e"])); sprite[ItemType.WINTER_PEASANT] = [], sprite[ItemType.WINTER_PEASANT][SPRITE.DAY] = CTI(create_peasant(scale * 0.55, true, ["#1d1d22", "#e2e1e1", "#d2cbcb", "#cfcbc8", "#beb5b5", "#ada0a0"], 1)); sprite[ItemType.WINTER_PEASANT][SPRITE.NIGHT] = CTI(create_peasant(scale * 0.55, true, ["#1d1d22", "#216661", "#134945", "#2b8079", "#17504c"], 1)); sprite[ItemType.PEASANT] = [], sprite[ItemType.PEASANT][SPRITE.DAY] = CTI(create_peasant(scale * 0.55, true, ["#1d1d22", "#8c7654", "#785f4c", "#a88e6c", "#785f4c", "#705845"], 0)); sprite[ItemType.PEASANT][SPRITE.NIGHT] = CTI(create_peasant(scale * 0.55, true, ["#1d1d22", "#1b5752", "#0e3b37", "#23706a", "#11413e", "#0b322f"], 0)); sprite[ItemType.CROWN_GREEN] = [], sprite[ItemType.CROWN_GREEN][SPRITE.DAY] = CTI(create_crown(scale * 0.2, true, ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#49B669", "#19994C", "#71C187"])); sprite[ItemType.CROWN_GREEN][SPRITE.NIGHT] = CTI(create_crown(scale * 0.2, true, ["#2b7c57", "#114933", "#1b6656", "#1a7961", "#3db76f", "#118254", "#40c696"])); sprite[ItemType.CROWN_ORANGE] = [], sprite[ItemType.CROWN_ORANGE][SPRITE.DAY] = CTI(create_crown(scale * 0.2, true, ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#C45727", "#994617", "#DB9358"])); sprite[ItemType.CROWN_ORANGE][SPRITE.NIGHT] = CTI(create_crown(scale * 0.2, true, ["#2b7c57", "#114933", "#1b6656", "#1a7961", "#69b681", "#509a75", "#7ec387"])); sprite[ItemType.CROWN_BLUE] = [], sprite[ItemType.CROWN_BLUE][SPRITE.DAY] = CTI(create_crown(scale * 0.2, true, ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#2792C1", "#196599", "#59C0D8"])); sprite[ItemType.CROWN_BLUE][SPRITE.NIGHT] = CTI(create_crown(scale * 0.2, true, ["#2b7c57", "#114933", "#1b6656", "#1a7961", "#19899e", "#16688b", "#4ea3c7"])); sprite[ItemType.CRAB_HELMET] = [], sprite[ItemType.CRAB_HELMET][SPRITE.DAY] = CTI(create_crab_crown(scale * 0.24, true, ["#000000", "#b03431", "#94312d", "#bd3c33", "#e45936"])); sprite[ItemType.CRAB_HELMET][SPRITE.NIGHT] = CTI(create_crab_crown(scale * 0.24, true, ["#000000", "#1b103e", "#190f3b", "#261a4e", "#34255d"])); sprite[ItemType.DRAGON_HELMET] = [], sprite[ItemType.DRAGON_HELMET][SPRITE.DAY] = CTI(create_dragon_helmet(scale * 0.32, true, ["#0d1b1c", "#cae9eb", "#75bcae", "#ffffff", "#51736d", "#2b4d48", "#1b3a3a", "#80ccca", "#59ada7"])); sprite[ItemType.DRAGON_HELMET][SPRITE.NIGHT] = CTI(create_dragon_helmet(scale * 0.32, true, ["#0d1b1c", "#70c1d6", "#49b2cf", "#87cad9", "#367c93", "#113743", "#0c2c36", "#51a2b8", "#3a8ea4"])); sprite[ItemType.DRAGON_SWORD] = []; sprite[ItemType.DRAGON_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_dragon_sword(scale * 0.9, true, ["#0d1b1c", "#284c4a", "#193533", "#c8efef", "#7eccbb"]))); sprite[ItemType.DRAGON_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_dragon_sword(scale * 0.9, true, ["#0d1b1c", "#18332e", "#112320", "#87d2e6", "#49b2cf"]))); sprite[SPRITE.DRAGON_SWORD_HALO] = []; sprite[SPRITE.DRAGON_SWORD_HALO][SPRITE.DAY] = CTI(create_rotated_img(3, create_dragon_sword(scale * 1, true, [undefined, undefined, undefined, "#c8efef", "#c8efef"]))); sprite[SPRITE.DRAGON_SWORD_HALO][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_dragon_sword(scale * 1, true, [undefined, undefined, undefined, "#87d2e6", "#87d2e6"]))); sprite[SPRITE.QUEST_BUTTON] = []; sprite[SPRITE.QUEST_BUTTON].push(CTI(create_quest_button(scale * 0.3, true, ["#0d1b1c", "#392C16", "#5E3E1A", "#704821", "#654320", "#eda80d"], 0))); sprite[SPRITE.QUEST_BUTTON].push(CTI(create_quest_button(scale * 0.3, true, ["#0d1b1c", "#392C16", "#5E3E1A", "#704821", "#654320", "#eda80d"], 1))); sprite[SPRITE.QUEST_BUTTON].push(CTI(create_quest_button(scale * 0.3, true, ["#0d1b1c", "#392C16", "#5E3E1A", "#704821", "#654320", "#d7990c"], 1))); sprite[SPRITE.MARKET_BUTTON] = []; sprite[SPRITE.MARKET_BUTTON].push(CTI(create_market_button(scale * 0.7, ["#392C16", "#5E3E1A", "#85592c", "#eda80d"], 0))); sprite[SPRITE.MARKET_BUTTON].push(CTI(create_market_button(scale * 0.7, ["#392C16", "#5E3E1A", "#85592c", "#eda80d"], 1))); sprite[SPRITE.MARKET_BUTTON].push(CTI(create_market_button(scale * 0.7, ["#392C16", "#5E3E1A", "#85592c", "#eda80d"], 1))); sprite[ItemType.CURSED_SWORD] = []; sprite[ItemType.CURSED_SWORD][SPRITE.DAY] = CTI(create_rotated_img(3, create_cursed_sword(scale * 0.8, true, ["#0d1b1c", "#b70404", "#ff0000", "#fc5e5e", "#2b0714", "#050c28"]))); sprite[ItemType.CURSED_SWORD][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_cursed_sword(scale * 0.8, true, ["#0d1b1c", "#b70404", "#ff0000", "#fc5e5e", "#2b0714", "#050c28"]))); sprite[SPRITE.INV_CURSED_SWORD] = create_craft_button(1, [{ f: create_cursed_sword, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#b70404", "#ff0000", "#fc5e5e", "#2b0714", "#050c28"] }], 0.55, ["#3ba578", "#4eb687", "#3da34d"], 0.5); sprite[SPRITE.CRAFT_CURSED_SWORD] = sprite[SPRITE.INV_CURSED_SWORD]; sprite[SPRITE.CHEST_CURSED_SWORD] = sprite[SPRITE.INV_CURSED_SWORD]; sprite[ItemType.STONE_SHOVEL] = []; sprite[ItemType.STONE_SHOVEL][SPRITE.DAY] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#6d5041", "#4f3d35", "#939393", "#5f6061", "#757575"]))); sprite[ItemType.STONE_SHOVEL][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#0d2e33", "#0b2326", "#485e66", "#1f343f", "#274352"]))); sprite[ItemType.GOLD_SHOVEL] = []; sprite[ItemType.GOLD_SHOVEL][SPRITE.DAY] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32", "#ada437"]))); sprite[ItemType.GOLD_SHOVEL][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#263947", "#182935", "#43aa82", "#29997c", "#32916c"]))); sprite[ItemType.DIAMOND_SHOVEL] = []; sprite[ItemType.DIAMOND_SHOVEL][SPRITE.DAY] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1", "#42aab8"]))); sprite[ItemType.DIAMOND_SHOVEL][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#111316", "#0a0b0c", "#73dde5", "#3dc4c0", "#49bdc6"]))); sprite[ItemType.AMETHYST_SHOVEL] = []; sprite[ItemType.AMETHYST_SHOVEL][SPRITE.DAY] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa", "#9641b5"]))); sprite[ItemType.AMETHYST_SHOVEL][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#111316", "#0a0b0c", "#8359d3", "#764eb5", "#6f45c2"]))); sprite[ItemType.REIDITE_SHOVEL] = []; sprite[ItemType.REIDITE_SHOVEL][SPRITE.DAY] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#6c6464", "#524d4d", "#c24c3a", "#8f392a", "#a03e30"]))); sprite[ItemType.REIDITE_SHOVEL][SPRITE.NIGHT] = CTI(create_rotated_img(3, create_shovel(scale * 0.7, true, ["#0d1b1c", "#41254b", "#311c42", "#973b29", "#6e1d4f", "#6a1d3e"]))); sprite[SPRITE.SHOP] = []; sprite[SPRITE.SHOP].push(CTI(create_shop(scale * 0.7, ["#3b330d", "#b5a118", "#c8ac16"], 0))); sprite[SPRITE.SHOP].push(CTI(create_shop(scale * 0.7, ["#524712", "#c7b11c", "#d9ba18"], 0))); sprite[SPRITE.SHOP].push(CTI(create_shop(scale * 0.7, ["#2a2409", "#9f8e14", "#ad9511"], 0))); sprite[SPRITE.HURT_WOLF] = CTI(create_hurt_wolf(scale * 1.1, ["#BB0000"])); sprite[SPRITE.HURT_SPIDER] = CTI(create_rotated_img(window.Math.PI, create_hurt_spider(scale * 0.9, "#BB0000"))); /* HATS */ sprite[ItemType.EXPLORER_HAT] = []; sprite[ItemType.EXPLORER_HAT][SPRITE.DAY] = CTI(create_explorer_hat(scale * 0.55, true, ["#c9a65f", "#ae863f", "#655530", "#4a391c", "#ebdd79", "#4a421c"])); sprite[ItemType.EXPLORER_HAT][SPRITE.NIGHT] = CTI(create_explorer_hat(scale * 0.55, true, ["#15514f", "#0f3f3d", "#123335", "#0d2d2b", "#2b6664", "#070d16"])); /* HATS */ sprite[ItemType.WOOD_HELMET] = []; sprite[ItemType.WOOD_HELMET][SPRITE.DAY] = CTI(create_wooden_helmet(scale * 0.55, true, ["#252525", "#73583e", "#573f29", "#7d6144"])); sprite[ItemType.WOOD_HELMET][SPRITE.NIGHT] = CTI(create_wooden_helmet(scale * 0.55, true, ["#0d3b39", "#144642", "#0b3230", "#154f4b"])); sprite[ItemType.STONE_HELMET] = []; sprite[ItemType.STONE_HELMET][SPRITE.DAY] = CTI(create_stone_helmet(scale * 0.6, true, ["#252525", "#808080", "#4a4a4a", "#9e9c8b", "#615c53", "#686969", "#8a8776", "#555555", "#747474", "#969696", "#454545"])); sprite[ItemType.STONE_HELMET][SPRITE.NIGHT] = CTI(create_stone_helmet(scale * 0.6, true, ["#030d14", "#1c4a4a", "#102d2d", "#255756", "#163d3c", "#194544", "#1f5252", "#184141", "#1c4a4a", "#255756", "#163a3a"])); sprite[ItemType.GOLD_HELMET] = []; sprite[ItemType.GOLD_HELMET][SPRITE.DAY] = CTI(create_gold_helmet(scale * 0.58, true, ["#dbce71", "#b29c32", "#c4bc51"])); sprite[ItemType.GOLD_HELMET][SPRITE.NIGHT] = CTI(create_gold_helmet(scale * 0.58, true, ["#2b7c57", "#15543c", "#1a7961"])); sprite[ItemType.DIAMOND_HELMET] = []; sprite[ItemType.DIAMOND_HELMET][SPRITE.DAY] = CTI(create_diamond_helmet(scale * 0.69, true, ["#717171", "#485252", "#555555", "#65c7cd", "#4aadad", "#358d8b", "#c1e6ea", "#a6dce4"])); sprite[ItemType.DIAMOND_HELMET][SPRITE.NIGHT] = CTI(create_diamond_helmet(scale * 0.69, true, ["#183f3f", "#092121", "#123335", "#2b9390", "#277a74", "#1f665f", "#83ddd4", "#59c9c0"])); /* WINTER */ sprite[SPRITE.FIR] = []; sprite[SPRITE.FIR][SPRITE.DAY] = []; sprite[SPRITE.FIR][SPRITE.NIGHT] = []; sprite[SPRITE.FIR][SPRITE.DAY].push(CTI(create_fir_three(scale * 1.3, ["#0a2d18", "#124c34", "#227248", "#ccedd9", "#2d7a55", "#3c9660", "#afddc1", "#bbefd0", "#0a2d18", "#e4efe8"]))); sprite[SPRITE.FIR][SPRITE.DAY].push(CTI(create_fir_two(scale * 1.5, ["#191919", "#134d35", "#247349", "#afddc1", "#bbefd0", "#e4efe8"]))); sprite[SPRITE.FIR][SPRITE.DAY].push(CTI(create_fir_one(scale * 1.5, ["#191919", "#134d35", "#247349", "#cde7d6", "#122d1c", "#e3eee7"]))); sprite[SPRITE.FIR][SPRITE.NIGHT].push(CTI(create_fir_three(scale * 1.3, ["#000000", "#0e3638", "#174a51", "#328587", "#174a51", "#1d5559", "#328587", "#48a8aa", "#0a2728", "#56afac"]))); sprite[SPRITE.FIR][SPRITE.NIGHT].push(CTI(create_fir_two(scale * 1.5, ["#000000", "#0e3638", "#174a51", "#328587", "#48a8aa", "#56afac"]))); sprite[SPRITE.FIR][SPRITE.NIGHT].push(CTI(create_fir_one(scale * 1.5, ["#000000", "#0e3638", "#174a51", "#328587", "#0a2728", "#56afac"]))); sprite[SPRITE.DRAGON] = []; sprite[SPRITE.DRAGON][SPRITE.DAY] = CTI(create_dragon(scale * 1, ["#292b2b", "#57aba6", "#80ccca", "#c42333", "#a4dad9", "#3e8294", "#ffffff", "#57aba6", "#ffffff"])); sprite[SPRITE.DRAGON][SPRITE.NIGHT] = CTI(create_dragon(scale * 1, ["#050505", "#1d3a38", "#0b514a", "#200333", "#327570", "#1d3a38", "#ffffff", "#0b514a", "#63afa9"])); sprite[SPRITE.WING_LEFT] = []; sprite[SPRITE.WING_LEFT][SPRITE.DAY] = CTI(create_wingleft(scale * 1, ["#292b2b", "#a4dad9", "#1f3f3f", "#c1233b"])); sprite[SPRITE.WING_LEFT][SPRITE.NIGHT] = CTI(create_wingleft(scale * 1, ["#050505", "#327570", "#021724", "#200333"])); sprite[SPRITE.WING_RIGHT] = []; sprite[SPRITE.WING_RIGHT][SPRITE.DAY] = CTI(create_wingright(scale * 1, ["#292b2b", "#a4dad9", "#1f3f3f", "#c1233b"])); sprite[SPRITE.WING_RIGHT][SPRITE.NIGHT] = CTI(create_wingright(scale * 1, ["#050505", "#327570", "#021724", "#200333"])); sprite[SPRITE.DECORATION] = []; sprite[SPRITE.DECORATION][SPRITE.DAY] = []; sprite[SPRITE.DECORATION][SPRITE.NIGHT] = []; sprite[SPRITE.DECORATION][SPRITE.DAY] = [ IMAGES.DECORATION_0D, IMAGES.DECORATION_1D, IMAGES.DECORATION_2D, IMAGES.DECORATION_3D, IMAGES.DECORATION_4D, IMAGES.DECORATION_5D, IMAGES.DECORATION_6D, IMAGES.DECORATION_7D, IMAGES.DECORATION_8D, IMAGES.DECORATION_9D, IMAGES.DECORATION_10D, IMAGES.DECORATION_11D, IMAGES.DECORATION_12D, IMAGES.DECORATION_13D, IMAGES.DECORATION_14D, IMAGES.DECORATION_15D, IMAGES.DECORATION_16D, IMAGES.DECORATION_17D, IMAGES.DECORATION_18D, IMAGES.DECORATION_19D, IMAGES.DECORATION_20D, IMAGES.DECORATION_21D, IMAGES.DECORATION_22D, IMAGES.DECORATION_23D, IMAGES.DECORATION_24D, IMAGES.DECORATION_25D, IMAGES.DECORATION_26D, IMAGES.DECORATION_27D, IMAGES.DECORATION_28D, IMAGES.DECORATION_29D, IMAGES.DECORATION_30D, IMAGES.DECORATION_31D, IMAGES.DECORATION_32D, IMAGES.DECORATION_33D, IMAGES.DECORATION_34D, IMAGES.DECORATION_35D, IMAGES.DECORATION_36D, IMAGES.DECORATION_37D, IMAGES.DECORATION_38D, IMAGES.DECORATION_39D, IMAGES.DECORATION_40D, IMAGES.DECORATION_41D, IMAGES.DECORATION_42D, IMAGES.DECORATION_43D, IMAGES.DECORATION_44D, IMAGES.DECORATION_45D, IMAGES.DECORATION_46D, IMAGES.DECORATION_47D, IMAGES.DECORATION_48D, IMAGES.DECORATION_49D, IMAGES.DECORATION_50D, IMAGES.DECORATION_51D, IMAGES.DECORATION_52D, IMAGES.DECORATION_53D, IMAGES.DECORATION_54D, IMAGES.DECORATION_55D, ]; sprite[SPRITE.DECORATION][SPRITE.NIGHT] = [ IMAGES.DECORATION_0N, IMAGES.DECORATION_1N, IMAGES.DECORATION_2N, IMAGES.DECORATION_3N, IMAGES.DECORATION_4N, IMAGES.DECORATION_5N, IMAGES.DECORATION_6N, IMAGES.DECORATION_7N, IMAGES.DECORATION_8N, IMAGES.DECORATION_9N, IMAGES.DECORATION_10N, IMAGES.DECORATION_11N, IMAGES.DECORATION_12N, IMAGES.DECORATION_13N, IMAGES.DECORATION_14N, IMAGES.DECORATION_15N, IMAGES.DECORATION_16N, IMAGES.DECORATION_17N, IMAGES.DECORATION_18N, IMAGES.DECORATION_19N, IMAGES.DECORATION_20N, IMAGES.DECORATION_21N, IMAGES.DECORATION_22N, IMAGES.DECORATION_23N, IMAGES.DECORATION_24N, IMAGES.DECORATION_25N, IMAGES.DECORATION_26N, IMAGES.DECORATION_27N, IMAGES.DECORATION_28N, IMAGES.DECORATION_29N, IMAGES.DECORATION_30N, IMAGES.DECORATION_31N, IMAGES.DECORATION_32N, IMAGES.DECORATION_33N, IMAGES.DECORATION_34N, IMAGES.DECORATION_35N, IMAGES.DECORATION_36N, IMAGES.DECORATION_37N, IMAGES.DECORATION_38N, IMAGES.DECORATION_39N, IMAGES.DECORATION_40N, IMAGES.DECORATION_41N, IMAGES.DECORATION_42N, IMAGES.DECORATION_43N, IMAGES.DECORATION_44N, IMAGES.DECORATION_45N, IMAGES.DECORATION_46N, IMAGES.DECORATION_47N, IMAGES.DECORATION_48N, IMAGES.DECORATION_49N, IMAGES.DECORATION_50N, IMAGES.DECORATION_51N, IMAGES.DECORATION_52N, IMAGES.DECORATION_53N, IMAGES.DECORATION_54N, IMAGES.DECORATION_55N, ]; sprite[SPRITE.CAVE_STONES] = []; sprite[SPRITE.CAVE_STONES][SPRITE.DAY] = []; sprite[SPRITE.CAVE_STONES][SPRITE.NIGHT] = []; sprite[SPRITE.CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 1.1, false, ["#252B28", "#747471", "#83827e"], 0))); sprite[SPRITE.CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 0.9, false, ["#252B28", "#747471", "#83827e"], 1))); sprite[SPRITE.CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 1, false, ["#252B28", "#747471", "#83827e"], 2))); sprite[SPRITE.CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 0.9, false, ["#252B28", "#747471", "#83827e"], 2))); sprite[SPRITE.CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 1.1, false, ["#030d14", "#123335", "#183f3f"], 0))); sprite[SPRITE.CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 0.9, false, ["#030d14", "#123335", "#183f3f"], 1))); sprite[SPRITE.CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 1, false, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 0.9, false, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES] = []; sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.DAY] = []; sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.NIGHT] = []; sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 1.1, true, ["#252B28", "#58645F", "#75827D"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 0.9, true, ["#252B28", "#58645F", "#75827D"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 1, true, ["#252B28", "#58645F", "#75827D"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.DAY].push(CTI(create_cave_stone(scale * 0.9, true, ["#252B28", "#58645F", "#75827D"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 1.1, true, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 0.9, true, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 1, true, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.SHADOW_CAVE_STONES][SPRITE.NIGHT].push(CTI(create_cave_stone(scale * 0.9, true, ["#030d14", "#123335", "#183f3f"], 2))); sprite[SPRITE.GOLD_WINTER] = []; sprite[SPRITE.GOLD_WINTER][SPRITE.DAY] = []; sprite[SPRITE.GOLD_WINTER][SPRITE.NIGHT] = []; sprite[SPRITE.GOLD_WINTER][SPRITE.DAY].push(CTI(create_gold(scale * 1.5, false, ["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[SPRITE.GOLD_WINTER][SPRITE.DAY].push(CTI(create_gold(scale * 1.3, false, ["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[SPRITE.GOLD_WINTER][SPRITE.DAY].push(CTI(create_gold(scale * 1.1, false, ["#2b280a", "#ddcf8a", "#f4efc6"]))); sprite[SPRITE.GOLD_WINTER][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.5, false, ["#0a2728", "#3e8989", "#50a09c"]))); sprite[SPRITE.GOLD_WINTER][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.3, false, ["#0a2728", "#3e8989", "#50a09c"]))); sprite[SPRITE.GOLD_WINTER][SPRITE.NIGHT].push(CTI(create_gold(scale * 1.1, false, ["#0a2728", "#3e8989", "#50a09c"]))); sprite[SPRITE.DIAMOND_WINTER] = []; sprite[SPRITE.DIAMOND_WINTER][SPRITE.DAY] = []; sprite[SPRITE.DIAMOND_WINTER][SPRITE.NIGHT] = []; sprite[SPRITE.DIAMOND_WINTER][SPRITE.DAY].push(CTI(create_diamond(scale * 1.1, false, ["#123d38", "#70e0dd", "#95efea"]))); sprite[SPRITE.DIAMOND_WINTER][SPRITE.DAY].push(CTI(create_diamond(scale * 0.9, false, ["#123d38", "#70e0dd", "#95efea"]))); sprite[SPRITE.DIAMOND_WINTER][SPRITE.DAY].push(CTI(create_diamond(scale * 0.7, false, ["#123d38", "#70e0dd", "#95efea"]))); sprite[SPRITE.DIAMOND_WINTER][SPRITE.NIGHT].push(CTI(create_diamond(scale * 1.1, false, ["#123d38", "#47b2ac", "#5cccc4"]))); sprite[SPRITE.DIAMOND_WINTER][SPRITE.NIGHT].push(CTI(create_diamond(scale * 0.9, false, ["#123d38", "#47b2ac", "#5cccc4"]))); sprite[SPRITE.DIAMOND_WINTER][SPRITE.NIGHT].push(CTI(create_diamond(scale * 0.7, false, ["#123d38", "#47b2ac", "#5cccc4"]))); sprite[ItemType.AMETHYST] = []; sprite[ItemType.AMETHYST][SPRITE.DAY] = []; sprite[ItemType.AMETHYST][SPRITE.NIGHT] = []; sprite[ItemType.AMETHYST][SPRITE.DAY].push(CTI(create_amethyst(scale * 1.7, true, ["#1d051e", "#c27add", "#cd98e5"]))); sprite[ItemType.AMETHYST][SPRITE.DAY].push(CTI(create_amethyst(scale * 1.5, true, ["#1d051e", "#c27add", "#cd98e5"]))); sprite[ItemType.AMETHYST][SPRITE.DAY].push(CTI(create_amethyst(scale * 1.3, true, ["#1d051e", "#c27add", "#cd98e5"]))); sprite[ItemType.AMETHYST][SPRITE.NIGHT].push(CTI(create_amethyst(scale * 1.7, true, ["#1d051e", "#41aaa0", "#5cccc4"]))); sprite[ItemType.AMETHYST][SPRITE.NIGHT].push(CTI(create_amethyst(scale * 1.5, true, ["#1d051e", "#41aaa0", "#5cccc4"]))); sprite[ItemType.AMETHYST][SPRITE.NIGHT].push(CTI(create_amethyst(scale * 1.3, true, ["#1d051e", "#41aaa0", "#5cccc4"]))); sprite[SPRITE.WATERBLOCK] = []; sprite[SPRITE.WATERBLOCK][SPRITE.DAY] = []; sprite[SPRITE.WATERBLOCK][SPRITE.NIGHT] = []; sprite[SPRITE.WATERBLOCK][SPRITE.DAY].push(CTI(create_dragon_ground(scale, ["#2d53c4"]))); sprite[SPRITE.WATERBLOCK][SPRITE.NIGHT].push(CTI(create_dragon_ground(scale, ["#2d53c4"]))); sprite[SPRITE.ISLAND_BLOCK] = []; sprite[SPRITE.ISLAND_BLOCK][SPRITE.DAY] = []; sprite[SPRITE.ISLAND_BLOCK][SPRITE.NIGHT] = []; sprite[SPRITE.ISLAND_BLOCK][SPRITE.DAY].push(CTI(create_dragon_ground(scale, ["#c4912d"]))); sprite[SPRITE.ISLAND_BLOCK][SPRITE.NIGHT].push(CTI(create_dragon_ground(scale, ["#c4912d"]))); sprite[SPRITE.CAVE_STEP] = []; sprite[SPRITE.CAVE_STEP][SPRITE.DAY] = CTI(create_snow_step(scale, ["#414040"])); sprite[SPRITE.CAVE_STEP][SPRITE.NIGHT] = CTI(create_snow_step(scale, ["#153635"])); sprite[SPRITE.FOX] = []; sprite[SPRITE.FOX][SPRITE.DAY] = CTI(create_winter_fox(scale * 0.9, ["#1d051e", "#ffffff", "#c41c50", "#2c2e2d", "#c63450", "#f7e7f0"])); sprite[SPRITE.FOX][SPRITE.NIGHT] = CTI(create_winter_fox(scale * 0.9, ["#123d38", "#1a847f", "#200333", "#131919", "#01333a", "#b6f2db"])); sprite[SPRITE.BEAR] = []; sprite[SPRITE.BEAR][SPRITE.DAY] = CTI(create_polar_bear(scale * 0.9, ["#1d051e", "#ffffff", "#c41c50", "#c63450", "#ffffff", "#f7e7f0", "#2b2d2d"])); sprite[SPRITE.BEAR][SPRITE.NIGHT] = CTI(create_polar_bear(scale * 0.9, ["#123d38", "#1a847f", "#200333", "#01333a", "#ffffff", "#b6f2db", "#2b2d2d"])); sprite[SPRITE.MINIMAP] = []; sprite[SPRITE.MINIMAP_CTX] = []; sprite[SPRITE.BIGMAP] = []; sprite[SPRITE.BIGMAP_CTX] = []; for (var i = 0; i < 2; i++) { sprite[SPRITE.MINIMAP][i] = window.document.createElement("canvas"); sprite[SPRITE.MINIMAP][i].width = 193; sprite[SPRITE.MINIMAP][i].height = 193; sprite[SPRITE.MINIMAP_CTX][i] = sprite[SPRITE.MINIMAP][i].getContext("2d"); sprite[SPRITE.BIGMAP][i] = window.document.createElement("canvas"); sprite[SPRITE.BIGMAP][i].width = 600; sprite[SPRITE.BIGMAP][i].height = 600; sprite[SPRITE.BIGMAP_CTX][i] = sprite[SPRITE.BIGMAP][i].getContext("2d"); } sprite[SPRITE.SNOW_STEP] = []; sprite[SPRITE.SNOW_STEP][SPRITE.DAY] = CTI(create_snow_step(scale, ["#c8e0de"])); sprite[SPRITE.SNOW_STEP][SPRITE.NIGHT] = CTI(create_snow_step(scale, ["#147071"])); sprite[SPRITE.LAVA_STEP] = []; sprite[SPRITE.LAVA_STEP][SPRITE.DAY] = CTI(create_snow_step(scale, ["#231912"])); sprite[SPRITE.LAVA_STEP][SPRITE.NIGHT] = CTI(create_snow_step(scale, ["#021719"])); sprite[SPRITE.HURT_TREASURE_CHEST] = CTI(create_hurt_treasure_chest(scale * 0.5, ["#BB0000"])); sprite[SPRITE.HURT_FOX] = CTI(create_hurt_fox_winter(scale * 0.9, "#BB0000")); sprite[SPRITE.HURT_BEAR] = CTI(create_hurt_polar_bear(scale * 0.9, "#BB0000")); sprite[SPRITE.HURT_DRAGON] = CTI(create_hurt_dragon(scale * 1, ["#BB0000"])); sprite[SPRITE.HURT_WING_LEFT] = CTI(create_hurt_wingleft(scale * 0.8, "#BB0000")); sprite[SPRITE.HURT_WING_RIGHT] = CTI(create_hurt_wingright(scale * 0.8, "#BB0000")); sprite[SPRITE.HURT_RABBIT] = CTI(create_hurt_rabbit(scale * 0.9, "#BB0000")); sprite[SPRITE.HURT] = CTI(create_hurt_player(scale * 0.6, "#BB0000")); sprite[SPRITE.COLD] = CTI(create_hurt_player(scale * 0.6, "#1CE7E0")); sprite[SPRITE.HUNGER] = CTI(create_hurt_player(scale * 0.6, "#DBE71C")); sprite[SPRITE.HEAL] = CTI(create_hurt_player(scale * 0.6, "#00BB00")); /*BEACH*/ sprite[SPRITE.SAND_STEP] = []; sprite[SPRITE.SAND_STEP][SPRITE.DAY] = CTI(create_snow_step(scale, ["#dac291"])); sprite[SPRITE.SAND_STEP][SPRITE.NIGHT] = CTI(create_snow_step(scale, ["#0D423D"])); sprite[SPRITE.ISLAND_STEP] = []; sprite[SPRITE.ISLAND_STEP][SPRITE.DAY] = CTI(create_snow_step(scale, ["#dac291"])); sprite[SPRITE.ISLAND_STEP][SPRITE.NIGHT] = CTI(create_snow_step(scale, ["#0D423D"])); sprite[SPRITE.WELL_FULL] = []; sprite[SPRITE.WELL_FULL][SPRITE.DAY] = CTI(create_well(scale * 0.3, true, ["#1e2021", "#717273", "#606162", "#a09f9f", "#878787", "#1a6470"])); sprite[SPRITE.WELL_FULL][SPRITE.NIGHT] = CTI(create_well(scale * 0.3, true, ["#1e2021", "#1a4545", "#163a3a", "#245d5d", "#1f5454", "#09373F"])); sprite[ItemType.WELL] = []; sprite[ItemType.WELL][SPRITE.DAY] = CTI(create_well(scale * 0.3, true, ["#1e2021", "#717273", "#606162", "#a09f9f", "#878787", "#454545"])); sprite[ItemType.WELL][SPRITE.NIGHT] = CTI(create_well(scale * 0.3, true, ["#1e2021", "#1a4545", "#163a3a", "#245d5d", "#1f5454", "#0b2121"])); sprite[ItemType.BOTTLE_FULL] = [CTI(create_bottle(scale, true, ["#C6AF81", "#C98435", "#B26F31", "#53A4D5", "#388AC7", "#C1C0C0", "#EAEAEA"]))]; sprite[ItemType.BOTTLE_EMPTY] = [CTI(create_bottle(scale, true, ["#C6AF81", "#C98435", "#B26F31", "#53A4D5", "#388AC7", "#C1C0C0", "#EAEAEA"]))]; /*OCEAN*/ sprite[SPRITE.OCEAN] = []; sprite[SPRITE.OCEAN][SPRITE.DAY] = []; sprite[SPRITE.OCEAN][SPRITE.NIGHT] = []; sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_one(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_two(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_three(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_four(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_five(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_six(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.DAY].push(CTI(create_snow_sept(scale * 1, ["#0B6A84"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_one(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_two(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_three(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_four(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_five(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_six(scale * 1, ["#09373F"]))); sprite[SPRITE.OCEAN][SPRITE.NIGHT].push(CTI(create_snow_sept(scale * 1, ["#09373F"]))); sprite[SPRITE.ISLAND] = []; sprite[SPRITE.ISLAND][SPRITE.DAY] = []; sprite[SPRITE.ISLAND][SPRITE.NIGHT] = []; sprite[SPRITE.ISLAND][SPRITE.DAY].push(CTI(create_island(scale * 1.7, ["#FBEFBC"], 0))); sprite[SPRITE.ISLAND][SPRITE.DAY].push(CTI(create_island(scale * 1.9, ["#FBEFBC"], 1))); sprite[SPRITE.ISLAND][SPRITE.DAY].push(CTI(create_island(scale * 1.7, ["#FBEFBC"], 2))); sprite[SPRITE.ISLAND][SPRITE.NIGHT].push(CTI(create_island(scale * 1.7, ["#0F4C48"], 0))); sprite[SPRITE.ISLAND][SPRITE.NIGHT].push(CTI(create_island(scale * 1.9, ["#0F4C48"], 1))); sprite[SPRITE.ISLAND][SPRITE.NIGHT].push(CTI(create_island(scale * 1.7, ["#0F4C48"], 2))); sprite[SPRITE.WAVE_ONE] = []; sprite[SPRITE.WAVE_ONE][SPRITE.DAY] = []; sprite[SPRITE.WAVE_ONE][SPRITE.NIGHT] = []; sprite[SPRITE.WAVE_ONE][SPRITE.DAY].push(CTI(create_island(scale * 1.8, ["#A9D6D3"], 0))); sprite[SPRITE.WAVE_ONE][SPRITE.DAY].push(CTI(create_island(scale * 2, ["#A9D6D3"], 1))); sprite[SPRITE.WAVE_ONE][SPRITE.DAY].push(CTI(create_island(scale * 1.8, ["#A9D6D3"], 2))); sprite[SPRITE.WAVE_ONE][SPRITE.NIGHT].push(CTI(create_island(scale * 1.8, ["#115E60"], 0))); sprite[SPRITE.WAVE_ONE][SPRITE.NIGHT].push(CTI(create_island(scale * 2, ["#115E60"], 1))); sprite[SPRITE.WAVE_ONE][SPRITE.NIGHT].push(CTI(create_island(scale * 1.8, ["#115E60"], 2))); sprite[SPRITE.WAVE_TWO] = []; sprite[SPRITE.WAVE_TWO][SPRITE.DAY] = []; sprite[SPRITE.WAVE_TWO][SPRITE.NIGHT] = []; sprite[SPRITE.WAVE_TWO][SPRITE.DAY].push(CTI(create_island(scale * 1.9, ["#2A8B9B"], 0))); sprite[SPRITE.WAVE_TWO][SPRITE.DAY].push(CTI(create_island(scale * 2.1, ["#2A8B9B"], 1))); sprite[SPRITE.WAVE_TWO][SPRITE.DAY].push(CTI(create_island(scale * 1.9, ["#2A8B9B"], 2))); sprite[SPRITE.WAVE_TWO][SPRITE.NIGHT].push(CTI(create_island(scale * 1.9, ["#0F464C"], 0))); sprite[SPRITE.WAVE_TWO][SPRITE.NIGHT].push(CTI(create_island(scale * 2.1, ["#0F464C"], 1))); sprite[SPRITE.WAVE_TWO][SPRITE.NIGHT].push(CTI(create_island(scale * 1.9, ["#0F464C"], 2))); sprite[SPRITE.PALM] = []; sprite[SPRITE.PALM][SPRITE.DAY] = []; sprite[SPRITE.PALM][SPRITE.NIGHT] = []; sprite[SPRITE.PALM][SPRITE.DAY].push(CTI(create_palm(scale * 0.8, ["#231F20", "#0c8e5b", "#037542", "#077b49"]))); sprite[SPRITE.PALM][SPRITE.DAY].push(CTI(create_palm(scale * 1, ["#231F20", "#0c8e5b", "#037542", "#077b49"]))); sprite[SPRITE.PALM][SPRITE.DAY].push(CTI(create_palm(scale * 1.2, ["#231F20", "#0c8e5b", "#037542", "#077b49"]))); sprite[SPRITE.PALM][SPRITE.NIGHT].push(CTI(create_palm(scale * 0.8, ["#041e22", "#124949", "#0e3838", "#0a4049"]))); sprite[SPRITE.PALM][SPRITE.NIGHT].push(CTI(create_palm(scale * 1, ["#041e22", "#124949", "#0e3838", "#0a4049"]))); sprite[SPRITE.PALM][SPRITE.NIGHT].push(CTI(create_palm(scale * 1.2, ["#041e22", "#124949", "#0e3838", "#0a4049"]))); sprite[SPRITE.KRAKEN] = []; sprite[SPRITE.KRAKEN][SPRITE.DAY] = CTI(create_kraken(scale * 0.8, ["#1e2021", "#B6222A", "#201851", "#342C7C", "#F4F4F4", "#D3D3D3", "#6765CE", "#593CC6", "#433BAD", "#342C7C", "#052830", "#EAEAEA", "#B6222A", "#FFFFFF"])); sprite[SPRITE.KRAKEN][SPRITE.NIGHT] = CTI(create_kraken(scale * 0.8, ["#0c0c0d", "#462966", "#081B2D", "#342C7C", "#9AAAAD", "#72898C", "#133556", "#296D9B", "#25557C", "#133556", "#0D2A42", "#EAEAEA", "#462966", "#72898C"])); sprite[SPRITE.HURT_KRAKEN] = CTI(create_hurt_kraken(scale * 0.8, ["#B6222A"])); sprite[SPRITE.PIRANHA] = []; sprite[SPRITE.PIRANHA][SPRITE.DAY] = CTI(create_pirahna(scale * 0.8, true, ["#1e2021", "#961B1B", "#702727", "#C43B3B", "#d15151", "#B71C1C", "#E8E8E8", "#752E2E", "#891818"])); sprite[SPRITE.PIRANHA][SPRITE.NIGHT] = CTI(create_pirahna(scale * 0.8, true, ["#0c0c0d", "#21112D", "#281A49", "#462966", "#321C56", "#1C073D", "#FFFFFF", "#1C0833", "#1B1238"])); sprite[SPRITE.HURT_PIRANHA] = CTI(create_hurt_pirahna(scale * 0.8, ["#B6222A"])); sprite[ItemType.CRAB_LOOT] = CTI(create_crab_loot(scale * 0.35, true, ["#0d1b1c", "#c04933", "#a33e2b", "#ee593d", "#c04933"], 1)); sprite[ItemType.CRAB_STICK] = CTI(create_crab_stick(scale * 0.35, true, ["#1e2021", "#ed5f4f", "#ce4545", "#ffffff", "#e2dad7"], 1)); sprite[SPRITE.CRAB_ATTACK] = []; sprite[SPRITE.CRAB_ATTACK][SPRITE.DAY] = CTI(create_crab(scale * 0.35, true, ["#1e2021", "#e45936", "#B6222A", "#B6222A", "#FFFFFF"], 1)); sprite[SPRITE.CRAB_ATTACK][SPRITE.NIGHT] = CTI(create_crab(scale * 0.35, true, ["#0c0c0d", "#613577", "#462966", "#1C073D", "#FFFFFF"], 1)); sprite[SPRITE.CRAB] = []; sprite[SPRITE.CRAB][SPRITE.DAY] = CTI(create_crab(scale * 0.35, true, ["#1e2021", "#e45936", "#ffffff", "#181414", "#FFFFFF"], 0)); sprite[SPRITE.CRAB][SPRITE.NIGHT] = CTI(create_crab(scale * 0.35, true, ["#0c0c0d", "#34255d", "#563f83", "#180f21", "#FFFFFF"], 0)); sprite[SPRITE.CRAB_CLAW_LEFT] = []; sprite[SPRITE.CRAB_CLAW_LEFT][SPRITE.DAY] = CTI(create_crab_claw_left(scale * 0.35, true, ["#1e2021", "#e45936", "#ffffff"])); sprite[SPRITE.CRAB_CLAW_LEFT][SPRITE.NIGHT] = CTI(create_crab_claw_left(scale * 0.35, true, ["#0c0c0d", "#34255d", "#563f83"])); sprite[SPRITE.CRAB_CLAW_RIGHT] = []; sprite[SPRITE.CRAB_CLAW_RIGHT][SPRITE.DAY] = CTI(create_crab_claw_right(scale * 0.42, true, ["#1e2021", "#e45936", "#ffffff"])); sprite[SPRITE.CRAB_CLAW_RIGHT][SPRITE.NIGHT] = CTI(create_crab_claw_right(scale * 0.42, true, ["#0c0c0d", "#34255d", "#563f83"])); sprite[SPRITE.CRAB_CLAW_LEFT_ATTACK] = []; sprite[SPRITE.CRAB_CLAW_LEFT_ATTACK][SPRITE.DAY] = CTI(create_crab_claw_left(scale * 0.35, true, ["#1e2021", "#e45936", "#B6222A"])); sprite[SPRITE.CRAB_CLAW_LEFT_ATTACK][SPRITE.NIGHT] = CTI(create_crab_claw_left(scale * 0.35, true, ["#0c0c0d", "#613577", "#462966"])); sprite[SPRITE.CRAB_CLAW_RIGHT_ATTACK] = []; sprite[SPRITE.CRAB_CLAW_RIGHT_ATTACK][SPRITE.DAY] = CTI(create_crab_claw_right(scale * 0.42, true, ["#1e2021", "#e45936", "#B6222A"])); sprite[SPRITE.CRAB_CLAW_RIGHT_ATTACK][SPRITE.NIGHT] = CTI(create_crab_claw_right(scale * 0.42, true, ["#0c0c0d", "#613577", "#462966"])); sprite[SPRITE.HURT_CRAB] = CTI(create_hurt_crab(scale * 0.35, ["#B6222A"])); sprite[SPRITE.HURT_CRAB_CLAW_LEFT] = CTI(create_crab_claw_left(scale * 0.35, true, [undefined, "#B6222A"])); sprite[SPRITE.HURT_CRAB_CLAW_RIGHT] = CTI(create_crab_claw_right(scale * 0.35, true, [undefined, "#B6222A"])); sprite[SPRITE.HEAL_CRAB] = CTI(create_hurt_crab(scale * 0.35, ["#22E066"])); sprite[SPRITE.HEAL_CRAB_CLAW_LEFT] = CTI(create_crab_claw_left(scale * 0.35, true, [undefined, "#22E066"])); sprite[SPRITE.HEAL_CRAB_CLAW_RIGHT] = CTI(create_crab_claw_right(scale * 0.35, true, [undefined, "#22E066"])); sprite[ItemType.DIVING_MASK] = []; sprite[ItemType.DIVING_MASK][SPRITE.DAY] = CTI(create_divingmask(scale * 0.3, true, ["#1e2021", "#65A8B7", "#2E85A0", "#14275B", "#081826", "#1A3163", "#0C1944", "#89C4CE", "#2E85A0"])); sprite[ItemType.DIVING_MASK][SPRITE.NIGHT] = CTI(create_divingmask(scale * 0.3, true, ["#0c0c0d", "#89C9C7", "#469E95", "#092C38", "#072021", "#0E343D", "#071F2D", "#9FD3D3", "#135367"])); sprite[ItemType.SUPER_DIVING_SUIT] = []; sprite[ItemType.SUPER_DIVING_SUIT][SPRITE.DAY] = CTI(create_superdivingsuit(scale * 0.45, true, ["#C4BC51", "#B29C32", "#201851", "#652D8E", "#1e2021", "#2E85A0"])); sprite[ItemType.SUPER_DIVING_SUIT][SPRITE.NIGHT] = CTI(create_superdivingsuit(scale * 0.45, true, ["#235050", "#357472", "#081B2D", "#342C7C", "#0c0c0d", "#135367"])); sprite[ItemType.PLOT] = []; sprite[ItemType.PLOT][SPRITE.DAY] = CTI(create_plot(scale * 0.63, true, ["#1e2021", "#352E1E", "#4C3B19", "#574122"])); sprite[ItemType.PLOT][SPRITE.NIGHT] = CTI(create_plot(scale * 0.63, true, ["#0c0c0d", "#071f22", "#0d2e33", "#184747"])); sprite[ItemType.BRIDGE] = []; sprite[ItemType.BRIDGE][SPRITE.DAY] = CTI(create_bridge(scale, true, ["#1e2021", "#332715", "#4C3B19", "#574122"])); sprite[ItemType.BRIDGE][SPRITE.NIGHT] = CTI(create_bridge(scale, true, ["#0c0c0d", "#071f22", "#0d2e33", "#184747"])); sprite[ItemType.TOWER] = []; sprite[ItemType.TOWER][SPRITE.DAY] = IMAGES.WOOD_TOWERD; sprite[ItemType.TOWER][SPRITE.NIGHT] = IMAGES.WOOD_TOWERN; sprite[ItemType.ROOF] = []; sprite[ItemType.ROOF][SPRITE.DAY] = CTI(create_roof(scale * 0.59, true, ["#0d1b1c", "#44301b", "#57442a", "#523e26"])); sprite[ItemType.ROOF][SPRITE.NIGHT] = CTI(create_roof(scale * 0.59, true, ["#0c0c0d", "#062124", "#10373d", "#0f3333"])); sprite[SPRITE.ROOFS] = [sprite[ItemType.ROOF]]; sprite[SPRITE.ROOFS][1] = []; sprite[SPRITE.ROOFS][2] = []; sprite[SPRITE.ROOFS][1][SPRITE.DAY] = CTI(create_roof1(scale * 0.59, true, ["#0d1b1c", "#44301b", "#57442a", "#523e26"])); sprite[SPRITE.ROOFS][1][SPRITE.NIGHT] = CTI(create_roof1(scale * 0.59, true, ["#0c0c0d", "#062124", "#10373d", "#0f3333"])); sprite[SPRITE.ROOFS][2][SPRITE.DAY] = CTI(create_roof2(scale * 0.59, true, ["#0d1b1c", "#44301b", "#57442a", "#523e26"])); sprite[SPRITE.ROOFS][2][SPRITE.NIGHT] = CTI(create_roof2(scale * 0.59, true, ["#0c0c0d", "#062124", "#10373d", "#0f3333"])); sprite[ItemType.WATERING_CAN_FULL] = []; sprite[ItemType.WATERING_CAN_FULL][SPRITE.DAY] = CTI(create_rotated_img(3 - window.Math.PI / 2, create_watering_can(scale * 0.6, true, ["#1e2021", "#674C2A", "#4C3B19", "#594225", "#1678a2"]))); sprite[ItemType.WATERING_CAN_FULL][SPRITE.NIGHT] = CTI(create_rotated_img(3 - window.Math.PI / 2, create_watering_can(scale * 0.6, true, ["#0c0c0d", "#07383c", "#0c4e53", "#042b2e", "#0c5975", "#11546c"]))); sprite[SPRITE.DEAD_BOX] = []; sprite[SPRITE.DEAD_BOX][SPRITE.DAY] = CTI(create_dead_box(scale * 0.3, ["#ad8850", "#714f24", "#9f7d4a", "#b38e59", "#8b1008"], 0)); sprite[SPRITE.DEAD_BOX][SPRITE.NIGHT] = CTI(create_dead_box(scale * 0.3, ["#1F5453", "#123335", "#1D4947", "#1F5453", "#0c2629"], 0)); sprite[SPRITE.WINDMILL_FLOUR] = create_craft_button(1, [{ f: create_flour, x: 0, y: 0, a: 1, r: 0, c: ["#B3AA8E", "#817961", "#EBEAE2", "#E0DFD8"] }], 0.25, ["#d2c77b", "#e7dc8f", "#bfb360"], 0.7); sprite[ItemType.LAVA_HEART] = create_craft_button(1.5, [{ f: create_dragon_heart, x: 0, y: 0, a: 1, r: 0, c: ["#120202", "#750a0a", "#991616", "#120202"] }], 0.45, ["#5bbcc9", "#73d2df", "#4daab6"], 0.9); /* LAVA BIOME END*/ sprite[SPRITE.HEART_SYMBOL_HUD] = create_symbol_hud(scale * 0.35, ["#072428", "#67A242", "#67A242"], 0); sprite[SPRITE.COLD_SYMBOL_HUD] = create_symbol_hud(scale * 0.35, ["#172130", "#649BB2", "#FFFFFF", "#FFFFFF", "#90C2D3", "#649BB2", "#84BDD1", "#2F5866"], 1); sprite[SPRITE.FOOD_SYMBOL_HUD] = create_symbol_hud(scale * 0.35, ["#3F0B11", "#B13424", "#FFFFFF", "#B13424", "#7e180b"], 2); sprite[SPRITE.WATER_SYMBOL_HUD] = create_symbol_hud(scale * 0.35, ["#1B2F4C", "#29488E", "#76c3e8", "#ffffff"], 3); sprite[SPRITE.LEADERBOARD] = CTI(create_leaderboard(scale)); sprite[SPRITE.GAUGES] = CTI(create_gauges(scale)); sprite[SPRITE.OXYGEN] = CTI(create_oxygen_gauges(scale)); sprite[SPRITE.DELAY_HELMET] = CTI(create_stone_helmet(scale * 0.16, true, ["rgba(0, 0, 0, 0)", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF"])); sprite[SPRITE.DELAY_WEAPON] = CTI(create_rotated_img(5.8, create_sword(scale * 0.15, true, ["rgba(0, 0, 0, 0)", "#FFFFFF", "#FFFFFF", "#FFFFFF", "#FFFFFF"]))); sprite[SPRITE.COUNTER] = []; sprite[SPRITE.SLOT_NUMBER] = []; for (var i = 0; i < WORLD.WITH_BAG + 2; i++) sprite[SPRITE.SLOT_NUMBER][i] = create_text(scale, "" + (i + 1), 12, "#FFF"); sprite[SPRITE.RECIPE_BUTTON] = []; sprite[SPRITE.RECIPE_BUTTON].push(CTI(create_recipe_button(scale * 0.12, ["#442F19", "#2C2112", "#C09D6F", "#A37943", "#eda80d"]))); sprite[SPRITE.RECIPE_BUTTON].push(CTI(create_recipe_button(scale * 0.12, ["#553b20", "#3e2f1a", "#d1ad7d", "#b3864c", "#eda80d"], 1))); sprite[SPRITE.RECIPE_BUTTON].push(CTI(create_recipe_button(scale * 0.12, ["#30200f", "#20180c", "#a78559", "#855f2f", "#b37d08"], 1))); sprite[SPRITE.CLOCK] = []; sprite[SPRITE.CLOCK].push(CTI(create_clock_day(scale * 0.22))); sprite[SPRITE.CLOCK].push(CTI(create_clock_night(scale * 0.22))); sprite[SPRITE.ARROW_CLOCK] = CTI(create_arrow_clock(scale * 0.22)); sprite[SPRITE.OPTION_BUTTON] = []; sprite[SPRITE.OPTION_BUTTON].push(CTI(create_gear_option(scale * 1.5, ["#795026", "#654320", "#eda80d"], 0))); sprite[SPRITE.OPTION_BUTTON].push(CTI(create_gear_option(scale * 1.5, ["#8f5e2c", "#7a5126", "#eda80d"], 1))); sprite[SPRITE.OPTION_BUTTON].push(CTI(create_gear_option(scale * 1.5, ["#67441f", "#573819", "#9c6e08"], 1))); /* UI assets */ sprite[SPRITE.MICROPHONE] = IMAGES.MICROPHONE; sprite[SPRITE.AUTO_FEED] = IMAGES.AUTO_FEED; sprite[SPRITE.BANDAGE_ACTIVATED] = IMAGES.BANDAGE_ACTIVATED; sprite[SPRITE.STOP_REGENERATION] = IMAGES.STOP_REGENERATION; sprite[SPRITE.STOP_REGENERATION_BLIZZARD] = IMAGES.STOP_REGENERATION_BLIZZARD; sprite[SPRITE.RECONNECT] = create_text(scale, "Reconnecting...", 30, "#FFF"); } function init_fake_world() { window.document.getElementById("game_body").style.backgroundColor = SPRITE.GROUND[fake_world.time]; fake_world.items.push(new Item(ITEMS.FIRE, 0, 0, 0, 0, window.Math.random() * PI2M, 2, 1)); fake_world.items.push(new Item(ITEMS.FRUIT, 0, 0, 0, 0, 0, 0, 5)); fake_world.items.push(new Item(ITEMS.WORKBENCH, 0, 0, 0, 0, PI4D, 0, 0)); fake_world.items.push(new Item(ITEMS.FRUIT, 0, 0, 0, 0, 0, 0, 5)); } function draw_fake_world() { var time = fake_world.time; if (sprite[SPRITE.HERB]) { ctx.drawImage(sprite[SPRITE.HERB][time][1], canw2 + 480, canh2 + 190); ctx.drawImage(sprite[SPRITE.HERB][time][2], canw2 + 180, canh2 - 430); ctx.drawImage(sprite[SPRITE.HERB][time][1], canw2 - 855, canh2 + 100); ctx.drawImage(sprite[SPRITE.HERB][time][0], canw2 - 550, canh2 - 300); ctx.drawImage(sprite[SPRITE.HERB][time][0], canw2 - 1020, canh2 - 520); } if (sprite[ItemType.STONE]) { ctx.drawImage(sprite[ItemType.STONE][time][1], canw2 - 80, canh2 - 640); ctx.drawImage(sprite[ItemType.STONE][time][1], canw2 + 80, canh2 + 490); ctx.drawImage(sprite[ItemType.STONE][time][2], canw2 - 180, canh2 - 700); ctx.drawImage(sprite[ItemType.STONE][time][0], canw2 + 550, canh2 + 100); ctx.drawImage(sprite[ItemType.STONE][time][1], canw2 + 450, canh2 + 300); ctx.drawImage(sprite[ItemType.STONE][time][1], canw2 + 780, canh2 + 300); ctx.drawImage(sprite[ItemType.STONE][time][2], canw2 + 980, canh2 + 200); ctx.drawImage(sprite[ItemType.STONE][time][2], canw2 + 680, canh2 + 600); ctx.drawImage(sprite[ItemType.STONE][time][2], canw2 - 380, canh2 + 100); ctx.drawImage(sprite[ItemType.STONE][time][2], canw2 + 280, canh2 + 250); } if (sprite[ItemType.BERRY]) { ctx.drawImage(sprite[ItemType.BERRY][time][0], canw2 - 590, canh2); ctx.drawImage(sprite[ItemType.BERRY][time][0], canw2 + 120, canh2 - 390); ctx.drawImage(sprite[ItemType.BERRY][time][0], canw2 - 270, canh2 + 340); } if (sprite[ItemType.WOOD]) { ctx.drawImage(sprite[ItemType.WOOD][time][4], canw2 - 700, canh2 - 600); ctx.drawImage(sprite[ItemType.WOOD][time][2], canw2 - 970, canh2 - 250); ctx.drawImage(sprite[ItemType.WOOD][time][5], canw2 - 720, canh2 - 200); ctx.drawImage(sprite[ItemType.WOOD][time][2], canw2 - 1020, canh2 + 340); ctx.drawImage(sprite[ItemType.WOOD][time][0], canw2 - 1120, canh2 - 0); ctx.drawImage(sprite[ItemType.WOOD][time][1], canw2 - 650, canh2 - 330); ctx.drawImage(sprite[ItemType.WOOD][time][4], canw2 - 495, canh2 - 90); ctx.drawImage(sprite[ItemType.WOOD][time][3], canw2 - 520, canh2 + 340); ctx.drawImage(sprite[ItemType.WOOD][time][2], canw2 + 830, canh2 - 520); } if (user && world) { /* Memorize previous camera position */ var x = user.cam.x; var y = user.cam.y; /* Hardly center the camera */ user.cam.x = canw2; user.cam.y = canh2; var real_time = world.time; world.time = fake_world.time; var items = fake_world.items; /* Draw a lost workbench ;_; */ items[2].x = 400; items[2].y = 100; items[2].draw(ItemType.WORKBENCH); /* Draw tons of fruits */ var fruits = items[1]; fruits.x = -500; fruits.y = 100; fruits.fruits[0].x = fruits.x - 20.5; fruits.fruits[0].y = fruits.y - 22.5; fruits.fruits[1].x = fruits.x - 35.5; fruits.fruits[1].y = fruits.y + 7.5; fruits.fruits[2].x = fruits.x + 7.5; fruits.fruits[2].y = fruits.y - 30; fruits.fruits[3].x = fruits.x + 22.5; fruits.fruits[3].y = fruits.y; fruits.fruits[4].x = fruits.x - 7.5; fruits.fruits[4].y = fruits.y + 14.5; for (var i = 0; i < fruits.info; i++) { fruits.fruits[i].draw(SPRITE.FRUIT); } var fruits = items[3]; fruits.x = 210; fruits.y = -290; fruits.fruits[0].x = fruits.x - 20.5; fruits.fruits[0].y = fruits.y - 22.5; fruits.fruits[1].x = fruits.x - 35.5; fruits.fruits[1].y = fruits.y + 7.5; fruits.fruits[2].x = fruits.x + 7.5; fruits.fruits[2].y = fruits.y - 30; fruits.fruits[3].x = fruits.x + 22.5; fruits.fruits[3].y = fruits.y; fruits.fruits[4].x = fruits.x - 7.5; fruits.fruits[4].y = fruits.y + 14.5; for (var i = 0; i < fruits.info; i++) { fruits.fruits[i].draw(SPRITE.FRUIT); } /* Draw fire */ items[0].x = 450; items[0].y = -100; items[0].draw_bg(ItemType.FIRE); /*items[0].draw ();*/ items[0].draw_fg(); /* Restore camera settings */ user.cam.x = x; user.cam.y = y; /* Restore time */ world.time = real_time; } } function render_inventory() { sprite[SPRITE.INV_PUMPKIN] = create_craft_button(1, [{ f: create_pumpkin, x: 0, y: 0, a: 1, r: 0, c: ["#352b10", "#c06937", "#cd733b", "#b25e34", "#244e2b", "#214224", "#6f4424", "#3c3009"] }], 0.2, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CHEST_PUMPKIN] = sprite[SPRITE.INV_PUMPKIN]; sprite[SPRITE.INV_CARROT] = []; sprite[SPRITE.INV_CARROT][0] = IMAGES.INV_CARROT_OUT; sprite[SPRITE.INV_CARROT][1] = IMAGES.INV_CARROT_IN; sprite[SPRITE.INV_CARROT][2] = IMAGES.INV_CARROT_CLICK; sprite[SPRITE.CHEST_CARROT] = sprite[SPRITE.INV_CARROT]; sprite[SPRITE.INV_WATERMELON] = []; sprite[SPRITE.INV_WATERMELON][0] = IMAGES.INV_WATERMELON_OUT; sprite[SPRITE.INV_WATERMELON][1] = IMAGES.INV_WATERMELON_IN; sprite[SPRITE.INV_WATERMELON][2] = IMAGES.INV_WATERMELON_CLICK; sprite[SPRITE.CHEST_WATERMELON] = sprite[SPRITE.INV_WATERMELON]; sprite[SPRITE.INV_ALOE_VERA] = []; sprite[SPRITE.INV_ALOE_VERA][0] = IMAGES.INV_ALOE_VERA_OUT; sprite[SPRITE.INV_ALOE_VERA][1] = IMAGES.INV_ALOE_VERA_IN; sprite[SPRITE.INV_ALOE_VERA][2] = IMAGES.INV_ALOE_VERA_CLICK; sprite[SPRITE.CHEST_ALOE_VERA] = sprite[SPRITE.INV_ALOE_VERA]; sprite[SPRITE.INV_CACTUS] = []; sprite[SPRITE.INV_CACTUS][0] = IMAGES.INV_CACTUS_OUT; sprite[SPRITE.INV_CACTUS][1] = IMAGES.INV_CACTUS_IN; sprite[SPRITE.INV_CACTUS][2] = IMAGES.INV_CACTUS_CLICK; sprite[SPRITE.CHEST_CACTUS] = sprite[SPRITE.INV_CACTUS]; sprite[SPRITE.INV_TOMATO] = []; sprite[SPRITE.INV_TOMATO][0] = IMAGES.INV_TOMATO_OUT; sprite[SPRITE.INV_TOMATO][1] = IMAGES.INV_TOMATO_IN; sprite[SPRITE.INV_TOMATO][2] = IMAGES.INV_TOMATO_CLICK; sprite[SPRITE.CHEST_TOMATO] = sprite[SPRITE.INV_TOMATO]; sprite[SPRITE.INV_BOAT] = []; sprite[SPRITE.INV_BOAT][0] = IMAGES.INV_BOAT_OUT; sprite[SPRITE.INV_BOAT][1] = IMAGES.INV_BOAT_IN; sprite[SPRITE.INV_BOAT][2] = IMAGES.INV_BOAT_CLICK; sprite[SPRITE.CHEST_BOAT] = sprite[SPRITE.INV_BOAT]; sprite[SPRITE.CRAFT_BOAT] = sprite[SPRITE.INV_BOAT]; sprite[SPRITE.INV_MACHETE] = []; sprite[SPRITE.INV_MACHETE][0] = IMAGES.INV_MACHETE_OUT; sprite[SPRITE.INV_MACHETE][1] = IMAGES.INV_MACHETE_IN; sprite[SPRITE.INV_MACHETE][2] = IMAGES.INV_MACHETE_CLICK; sprite[SPRITE.CHEST_MACHETE] = sprite[SPRITE.INV_MACHETE]; sprite[SPRITE.CRAFT_MACHETE] = sprite[SPRITE.INV_MACHETE]; sprite[SPRITE.INV_SLED] = []; sprite[SPRITE.INV_SLED][0] = IMAGES.INV_SLED_OUT; sprite[SPRITE.INV_SLED][1] = IMAGES.INV_SLED_IN; sprite[SPRITE.INV_SLED][2] = IMAGES.INV_SLED_CLICK; sprite[SPRITE.CHEST_SLED] = sprite[SPRITE.INV_SLED]; sprite[SPRITE.CRAFT_SLED] = sprite[SPRITE.INV_SLED]; sprite[SPRITE.INV_PIRATE_HAT] = []; sprite[SPRITE.INV_PIRATE_HAT][0] = IMAGES.INV_PIRATE_HAT_OUT; sprite[SPRITE.INV_PIRATE_HAT][1] = IMAGES.INV_PIRATE_HAT_IN; sprite[SPRITE.INV_PIRATE_HAT][2] = IMAGES.INV_PIRATE_HAT_CLICK; sprite[SPRITE.CHEST_PIRATE_HAT] = sprite[SPRITE.INV_PIRATE_HAT]; sprite[SPRITE.CRAFT_PIRATE_HAT] = sprite[SPRITE.INV_PIRATE_HAT]; sprite[SPRITE.INV_FUR_MAMMOTH] = []; sprite[SPRITE.INV_FUR_MAMMOTH][0] = IMAGES.INV_FUR_MAMMOTH_OUT; sprite[SPRITE.INV_FUR_MAMMOTH][1] = IMAGES.INV_FUR_MAMMOTH_IN; sprite[SPRITE.INV_FUR_MAMMOTH][2] = IMAGES.INV_FUR_MAMMOTH_CLICK; sprite[SPRITE.CHEST_FUR_MAMMOTH] = sprite[SPRITE.INV_FUR_MAMMOTH]; sprite[SPRITE.INV_FUR_HAT] = []; sprite[SPRITE.INV_FUR_HAT][0] = IMAGES.INV_FUR_HAT_OUT; sprite[SPRITE.INV_FUR_HAT][1] = IMAGES.INV_FUR_HAT_IN; sprite[SPRITE.INV_FUR_HAT][2] = IMAGES.INV_FUR_HAT_CLICK; sprite[SPRITE.CHEST_FUR_HAT] = sprite[SPRITE.INV_FUR_HAT]; sprite[SPRITE.CRAFT_FUR_HAT] = sprite[SPRITE.INV_FUR_HAT]; sprite[SPRITE.INV_WOOD_BOW] = []; sprite[SPRITE.INV_WOOD_BOW][0] = IMAGES.INV_WOOD_BOW_OUT; sprite[SPRITE.INV_WOOD_BOW][1] = IMAGES.INV_WOOD_BOW_IN; sprite[SPRITE.INV_WOOD_BOW][2] = IMAGES.INV_WOOD_BOW_CLICK; sprite[SPRITE.CHEST_WOOD_BOW] = sprite[SPRITE.INV_WOOD_BOW]; sprite[SPRITE.CRAFT_WOOD_BOW] = sprite[SPRITE.INV_WOOD_BOW]; sprite[SPRITE.INV_WOOD_ARROW] = []; sprite[SPRITE.INV_WOOD_ARROW][0] = IMAGES.INV_WOOD_ARROW_OUT; sprite[SPRITE.INV_WOOD_ARROW][1] = IMAGES.INV_WOOD_ARROW_IN; sprite[SPRITE.INV_WOOD_ARROW][2] = IMAGES.INV_WOOD_ARROW_CLICK; sprite[SPRITE.CHEST_WOOD_ARROW] = sprite[SPRITE.INV_WOOD_ARROW]; sprite[SPRITE.CRAFT_WOOD_ARROW] = sprite[SPRITE.INV_WOOD_ARROW]; sprite[SPRITE.INV_STONE_BOW] = []; sprite[SPRITE.INV_STONE_BOW][0] = IMAGES.INV_STONE_BOW_OUT; sprite[SPRITE.INV_STONE_BOW][1] = IMAGES.INV_STONE_BOW_IN; sprite[SPRITE.INV_STONE_BOW][2] = IMAGES.INV_STONE_BOW_CLICK; sprite[SPRITE.CHEST_STONE_BOW] = sprite[SPRITE.INV_STONE_BOW]; sprite[SPRITE.CRAFT_STONE_BOW] = sprite[SPRITE.INV_STONE_BOW]; sprite[SPRITE.INV_STONE_ARROW] = []; sprite[SPRITE.INV_STONE_ARROW][0] = IMAGES.INV_STONE_ARROW_OUT; sprite[SPRITE.INV_STONE_ARROW][1] = IMAGES.INV_STONE_ARROW_IN; sprite[SPRITE.INV_STONE_ARROW][2] = IMAGES.INV_STONE_ARROW_CLICK; sprite[SPRITE.CHEST_STONE_ARROW] = sprite[SPRITE.INV_STONE_ARROW]; sprite[SPRITE.CRAFT_STONE_ARROW] = sprite[SPRITE.INV_STONE_ARROW]; sprite[SPRITE.INV_GOLD_BOW] = []; sprite[SPRITE.INV_GOLD_BOW][0] = IMAGES.INV_GOLD_BOW_OUT; sprite[SPRITE.INV_GOLD_BOW][1] = IMAGES.INV_GOLD_BOW_IN; sprite[SPRITE.INV_GOLD_BOW][2] = IMAGES.INV_GOLD_BOW_CLICK; sprite[SPRITE.CHEST_GOLD_BOW] = sprite[SPRITE.INV_GOLD_BOW]; sprite[SPRITE.CRAFT_GOLD_BOW] = sprite[SPRITE.INV_GOLD_BOW]; sprite[SPRITE.INV_GOLD_ARROW] = []; sprite[SPRITE.INV_GOLD_ARROW][0] = IMAGES.INV_GOLD_ARROW_OUT; sprite[SPRITE.INV_GOLD_ARROW][1] = IMAGES.INV_GOLD_ARROW_IN; sprite[SPRITE.INV_GOLD_ARROW][2] = IMAGES.INV_GOLD_ARROW_CLICK; sprite[SPRITE.CHEST_GOLD_ARROW] = sprite[SPRITE.INV_GOLD_ARROW]; sprite[SPRITE.CRAFT_GOLD_ARROW] = sprite[SPRITE.INV_GOLD_ARROW]; sprite[SPRITE.INV_DIAMOND_BOW] = []; sprite[SPRITE.INV_DIAMOND_BOW][0] = IMAGES.INV_DIAMOND_BOW_OUT; sprite[SPRITE.INV_DIAMOND_BOW][1] = IMAGES.INV_DIAMOND_BOW_IN; sprite[SPRITE.INV_DIAMOND_BOW][2] = IMAGES.INV_DIAMOND_BOW_CLICK; sprite[SPRITE.CHEST_DIAMOND_BOW] = sprite[SPRITE.INV_DIAMOND_BOW]; sprite[SPRITE.CRAFT_DIAMOND_BOW] = sprite[SPRITE.INV_DIAMOND_BOW]; sprite[SPRITE.INV_DIAMOND_ARROW] = []; sprite[SPRITE.INV_DIAMOND_ARROW][0] = IMAGES.INV_DIAMOND_ARROW_OUT; sprite[SPRITE.INV_DIAMOND_ARROW][1] = IMAGES.INV_DIAMOND_ARROW_IN; sprite[SPRITE.INV_DIAMOND_ARROW][2] = IMAGES.INV_DIAMOND_ARROW_CLICK; sprite[SPRITE.CHEST_DIAMOND_ARROW] = sprite[SPRITE.INV_DIAMOND_ARROW]; sprite[SPRITE.CRAFT_DIAMOND_ARROW] = sprite[SPRITE.INV_DIAMOND_ARROW]; sprite[SPRITE.INV_AMETHYST_BOW] = []; sprite[SPRITE.INV_AMETHYST_BOW][0] = IMAGES.INV_AMETHYST_BOW_OUT; sprite[SPRITE.INV_AMETHYST_BOW][1] = IMAGES.INV_AMETHYST_BOW_IN; sprite[SPRITE.INV_AMETHYST_BOW][2] = IMAGES.INV_AMETHYST_BOW_CLICK; sprite[SPRITE.CHEST_AMETHYST_BOW] = sprite[SPRITE.INV_AMETHYST_BOW]; sprite[SPRITE.CRAFT_AMETHYST_BOW] = sprite[SPRITE.INV_AMETHYST_BOW]; sprite[SPRITE.INV_AMETHYST_ARROW] = []; sprite[SPRITE.INV_AMETHYST_ARROW][0] = IMAGES.INV_AMETHYST_ARROW_OUT; sprite[SPRITE.INV_AMETHYST_ARROW][1] = IMAGES.INV_AMETHYST_ARROW_IN; sprite[SPRITE.INV_AMETHYST_ARROW][2] = IMAGES.INV_AMETHYST_ARROW_CLICK; sprite[SPRITE.CHEST_AMETHYST_ARROW] = sprite[SPRITE.INV_AMETHYST_ARROW]; sprite[SPRITE.CRAFT_AMETHYST_ARROW] = sprite[SPRITE.INV_AMETHYST_ARROW]; sprite[SPRITE.INV_REIDITE_BOW] = []; sprite[SPRITE.INV_REIDITE_BOW][0] = IMAGES.INV_REIDITE_BOW_OUT; sprite[SPRITE.INV_REIDITE_BOW][1] = IMAGES.INV_REIDITE_BOW_IN; sprite[SPRITE.INV_REIDITE_BOW][2] = IMAGES.INV_REIDITE_BOW_CLICK; sprite[SPRITE.CHEST_REIDITE_BOW] = sprite[SPRITE.INV_REIDITE_BOW]; sprite[SPRITE.CRAFT_REIDITE_BOW] = sprite[SPRITE.INV_REIDITE_BOW]; sprite[SPRITE.INV_REIDITE_ARROW] = []; sprite[SPRITE.INV_REIDITE_ARROW][0] = IMAGES.INV_REIDITE_ARROW_OUT; sprite[SPRITE.INV_REIDITE_ARROW][1] = IMAGES.INV_REIDITE_ARROW_IN; sprite[SPRITE.INV_REIDITE_ARROW][2] = IMAGES.INV_REIDITE_ARROW_CLICK; sprite[SPRITE.CHEST_REIDITE_ARROW] = sprite[SPRITE.INV_REIDITE_ARROW]; sprite[SPRITE.CRAFT_REIDITE_ARROW] = sprite[SPRITE.INV_REIDITE_ARROW]; sprite[SPRITE.INV_DRAGON_BOW] = []; sprite[SPRITE.INV_DRAGON_BOW][0] = IMAGES.INV_DRAGON_BOW_OUT; sprite[SPRITE.INV_DRAGON_BOW][1] = IMAGES.INV_DRAGON_BOW_IN; sprite[SPRITE.INV_DRAGON_BOW][2] = IMAGES.INV_DRAGON_BOW_CLICK; sprite[SPRITE.CHEST_DRAGON_BOW] = sprite[SPRITE.INV_DRAGON_BOW]; sprite[SPRITE.CRAFT_DRAGON_BOW] = sprite[SPRITE.INV_DRAGON_BOW]; sprite[SPRITE.INV_DRAGON_ARROW] = []; sprite[SPRITE.INV_DRAGON_ARROW][0] = IMAGES.INV_DRAGON_ARROW_OUT; sprite[SPRITE.INV_DRAGON_ARROW][1] = IMAGES.INV_DRAGON_ARROW_IN; sprite[SPRITE.INV_DRAGON_ARROW][2] = IMAGES.INV_DRAGON_ARROW_CLICK; sprite[SPRITE.CHEST_DRAGON_ARROW] = sprite[SPRITE.INV_DRAGON_ARROW]; sprite[SPRITE.CRAFT_DRAGON_ARROW] = sprite[SPRITE.INV_DRAGON_ARROW]; sprite[SPRITE.INV_WOOD_SHIELD] = []; sprite[SPRITE.INV_WOOD_SHIELD][0] = IMAGES.INV_WOOD_SHIELD_OUT; sprite[SPRITE.INV_WOOD_SHIELD][1] = IMAGES.INV_WOOD_SHIELD_IN; sprite[SPRITE.INV_WOOD_SHIELD][2] = IMAGES.INV_WOOD_SHIELD_CLICK; sprite[SPRITE.CHEST_WOOD_SHIELD] = sprite[SPRITE.INV_WOOD_SHIELD]; sprite[SPRITE.CRAFT_WOOD_SHIELD] = sprite[SPRITE.INV_WOOD_SHIELD]; sprite[SPRITE.INV_STONE_SHIELD] = []; sprite[SPRITE.INV_STONE_SHIELD][0] = IMAGES.INV_STONE_SHIELD_OUT; sprite[SPRITE.INV_STONE_SHIELD][1] = IMAGES.INV_STONE_SHIELD_IN; sprite[SPRITE.INV_STONE_SHIELD][2] = IMAGES.INV_STONE_SHIELD_CLICK; sprite[SPRITE.CHEST_STONE_SHIELD] = sprite[SPRITE.INV_STONE_SHIELD]; sprite[SPRITE.CRAFT_STONE_SHIELD] = sprite[SPRITE.INV_STONE_SHIELD]; sprite[SPRITE.INV_GOLD_SHIELD] = []; sprite[SPRITE.INV_GOLD_SHIELD][0] = IMAGES.INV_GOLD_SHIELD_OUT; sprite[SPRITE.INV_GOLD_SHIELD][1] = IMAGES.INV_GOLD_SHIELD_IN; sprite[SPRITE.INV_GOLD_SHIELD][2] = IMAGES.INV_GOLD_SHIELD_CLICK; sprite[SPRITE.CHEST_GOLD_SHIELD] = sprite[SPRITE.INV_GOLD_SHIELD]; sprite[SPRITE.CRAFT_GOLD_SHIELD] = sprite[SPRITE.INV_GOLD_SHIELD]; sprite[SPRITE.INV_DIAMOND_SHIELD] = []; sprite[SPRITE.INV_DIAMOND_SHIELD][0] = IMAGES.INV_DIAMOND_SHIELD_OUT; sprite[SPRITE.INV_DIAMOND_SHIELD][1] = IMAGES.INV_DIAMOND_SHIELD_IN; sprite[SPRITE.INV_DIAMOND_SHIELD][2] = IMAGES.INV_DIAMOND_SHIELD_CLICK; sprite[SPRITE.CHEST_DIAMOND_SHIELD] = sprite[SPRITE.INV_DIAMOND_SHIELD]; sprite[SPRITE.CRAFT_DIAMOND_SHIELD] = sprite[SPRITE.INV_DIAMOND_SHIELD]; sprite[SPRITE.INV_AMETHYST_SHIELD] = []; sprite[SPRITE.INV_AMETHYST_SHIELD][0] = IMAGES.INV_AMETHYST_SHIELD_OUT; sprite[SPRITE.INV_AMETHYST_SHIELD][1] = IMAGES.INV_AMETHYST_SHIELD_IN; sprite[SPRITE.INV_AMETHYST_SHIELD][2] = IMAGES.INV_AMETHYST_SHIELD_CLICK; sprite[SPRITE.CHEST_AMETHYST_SHIELD] = sprite[SPRITE.INV_AMETHYST_SHIELD]; sprite[SPRITE.CRAFT_AMETHYST_SHIELD] = sprite[SPRITE.INV_AMETHYST_SHIELD]; sprite[SPRITE.INV_REIDITE_SHIELD] = []; sprite[SPRITE.INV_REIDITE_SHIELD][0] = IMAGES.INV_REIDITE_SHIELD_OUT; sprite[SPRITE.INV_REIDITE_SHIELD][1] = IMAGES.INV_REIDITE_SHIELD_IN; sprite[SPRITE.INV_REIDITE_SHIELD][2] = IMAGES.INV_REIDITE_SHIELD_CLICK; sprite[SPRITE.CHEST_REIDITE_SHIELD] = sprite[SPRITE.INV_REIDITE_SHIELD]; sprite[SPRITE.CRAFT_REIDITE_SHIELD] = sprite[SPRITE.INV_REIDITE_SHIELD]; sprite[SPRITE.INV_FLOWER_HAT] = []; sprite[SPRITE.INV_FLOWER_HAT][0] = IMAGES.INV_FLOWER_HAT_OUT; sprite[SPRITE.INV_FLOWER_HAT][1] = IMAGES.INV_FLOWER_HAT_IN; sprite[SPRITE.INV_FLOWER_HAT][2] = IMAGES.INV_FLOWER_HAT_CLICK; sprite[SPRITE.CHEST_FLOWER_HAT] = sprite[SPRITE.INV_FLOWER_HAT]; sprite[SPRITE.CRAFT_FLOWER_HAT] = sprite[SPRITE.INV_FLOWER_HAT]; sprite[SPRITE.INV_SANDWORM_JUICE] = []; sprite[SPRITE.INV_SANDWORM_JUICE][0] = IMAGES.INV_SANDWORM_JUICE_OUT; sprite[SPRITE.INV_SANDWORM_JUICE][1] = IMAGES.INV_SANDWORM_JUICE_IN; sprite[SPRITE.INV_SANDWORM_JUICE][2] = IMAGES.INV_SANDWORM_JUICE_CLICK; sprite[SPRITE.CHEST_SANDWORM_JUICE] = sprite[SPRITE.INV_SANDWORM_JUICE]; sprite[SPRITE.INV_GARLIC] = create_craft_button(1, [{ f: create_garlic, x: 0, y: 0, a: 1, r: 0, c: ["#352b10", "#e8e8e8", "#bbbbbb", "#e0e1e0", "#c4c4c4"] }], 0.22, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CHEST_GARLIC] = sprite[SPRITE.INV_GARLIC]; sprite[SPRITE.INV_THORNBUSH] = create_craft_button(1, [{ f: create_brambles, x: 0, y: 0, a: 1, r: 0, c: ["#352b10", "#349970", "#245c45", "#348361", "#e8e8e8", "#bbbbbb"] }], 0.2, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CHEST_THORNBUSH] = sprite[SPRITE.INV_THORNBUSH]; sprite[SPRITE.INV_WINDMILL] = create_craft_button( 1, [ { f: create_windmill, x: -1, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"] }, { f: create_windmill_wing, x: -1, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"] }, { f: create_windmill_head, x: -1, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#596560", "#394841", "#67766F", "#46554D", "#4C3B19", "#674C2A", "#7C5A29", "#596560", "#394841"] } ], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5 ); sprite[SPRITE.CRAFT_WINDMILL] = sprite[SPRITE.INV_WINDMILL]; sprite[SPRITE.INV_WILD_WHEAT] = create_craft_button(1, [{ f: create_wheat, x: 0, y: 0, a: 1, r: 0, c: ["#A89F67", "#9E8456"] }], 1.2, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_WHEAT_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#A89F67", "#9E8456"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_WHEAT_SEED] = sprite[SPRITE.INV_WHEAT_SEED]; sprite[SPRITE.INV_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#493d36", "#332b28"] }], 0.7, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_SEED] = sprite[SPRITE.INV_SEED]; sprite[SPRITE.INV_PUMPKIN_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#c67933", "#b17238"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_PUMPKIN_SEED] = sprite[SPRITE.INV_PUMPKIN_SEED]; sprite[SPRITE.INV_GARLIC_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#e8e8e8", "#bbbbbb"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_GARLIC_SEED] = sprite[SPRITE.INV_GARLIC_SEED]; sprite[SPRITE.INV_THORNBUSH_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#328a56", "#449573"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_THORNBUSH_SEED] = sprite[SPRITE.INV_THORNBUSH_SEED]; sprite[SPRITE.INV_CARROT_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#c98e2f", "#a36b11"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_CARROT_SEED] = sprite[SPRITE.INV_CARROT_SEED]; sprite[SPRITE.CHEST_CARROT_SEED] = sprite[SPRITE.INV_CARROT_SEED]; sprite[SPRITE.INV_WATERMELON_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#13a56d", "#098a58"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_WATERMELON_SEED] = sprite[SPRITE.INV_WATERMELON_SEED]; sprite[SPRITE.CHEST_WATERMELON_SEED] = sprite[SPRITE.INV_WATERMELON_SEED]; sprite[SPRITE.INV_ALOE_VERA_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#3a8214", "#4a9c1e"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_ALOE_VERA_SEED] = sprite[SPRITE.INV_ALOE_VERA_SEED]; sprite[SPRITE.CHEST_ALOE_VERA_SEED] = sprite[SPRITE.INV_ALOE_VERA_SEED]; sprite[SPRITE.INV_TOMATO_SEED] = create_craft_button(1, [{ f: create_seed, x: 0, y: 0, a: 1, r: 0, c: ["#b22419", "#99110e"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_TOMATO_SEED] = sprite[SPRITE.INV_TOMATO_SEED]; sprite[SPRITE.CHEST_TOMATO_SEED] = sprite[SPRITE.INV_TOMATO_SEED]; sprite[SPRITE.INV_FIRE] = create_craft_button( 1, [ { f: create_wood_fire, x: -2, y: -2, a: 1, r: -window.Math.PI / 7, c: ["#4d2d14", "#432516"] }, { f: create_fire, x: -2, y: -2, a: 1, r: -window.Math.PI / 7, c: ["#efd435", "#ec8d35", "#e96132"] } ], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5 ); sprite[SPRITE.CRAFT_FIRE] = sprite[SPRITE.INV_FIRE]; sprite[SPRITE.INV_BIG_FIRE] = create_craft_button( 1, [ { f: create_big_fire_wood, x: -2, y: -1, a: 1, r: -window.Math.PI / 7, c: ["#4d2d14", "#432516", "#58645F", "#75827D", "#0c2c2e"] }, { f: create_fire, x: -2, y: -1, a: 1, r: -window.Math.PI / 7, c: ["#efd435", "#ec8d35", "#e96132"] } ], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5 ); sprite[SPRITE.CRAFT_BIG_FIRE] = sprite[SPRITE.INV_BIG_FIRE]; sprite[SPRITE.INV_PIRATE_SWORD] = create_craft_button(1, [{ f: create_pirate_sword, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#4a3a22", "#362818", "#c7c7c7", "#909090", "#eceaea", "#bbbbbb", "#d6d1d1"] }], 0.1, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SUGAR_CAN] = create_craft_button(1, [{ f: create_sugar_can, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#ffffff", "#5f6061", "#eb2933", "#57b74e", "#42a54d", "#ac222a", "#e6636a"] }], 0.3, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SWORD_WOOD] = create_craft_button(1, [{ f: create_sword_wood, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#252525", "#73583e", "#493425", "#7d6144", "#5e4530", "#563e2b"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SWORD] = create_craft_button(1, [{ f: create_stonesword, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#939393", "#5f6061", "#b1afaf", "#493d36", "#332b28"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SWORD_GOLD] = create_craft_button(1, [{ f: create_goldsword, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#c4bc51", "#b29c32", "#c4bc51", "#493e26", "#382e19"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SWORD_DIAMOND] = create_craft_button(1, [{ f: create_diamondsword, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#6ad9e8", "#29aaa1", "#95e9f5", "#022320", "#011e19", "#FFFFFF"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SWORD_AMETHYST] = create_craft_button(1, [{ f: create_amesword, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#b864d6", "#8c29aa", "#cc81e7", "#262114", "#211108", "#FFFFFF"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK_WOOD] = create_craft_button(1, [{ f: create_pickaxe, x: -2, y: 5, a: 1, r: -window.Math.PI / 5, c: ["#0d1b1c", "#000000", "#0d1b1c", "#4d2d14", "#432516", "#4d2d14", "#432516"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK] = create_craft_button(1, [{ f: create_pickaxe, x: -2, y: 5, a: 1, r: -window.Math.PI / 5, c: ["#0d1b1c", "#000000", "#0d1b1c", "#4d2d14", "#432516", "#939393", "#5f6061"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK_GOLD] = create_craft_button(1, [{ f: create_pickaxe, x: -2, y: 5, a: 1, r: -window.Math.PI / 5, c: ["#0d1b1c", "#000000", "#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK_DIAMOND] = create_craft_button(1, [{ f: create_pickaxe, x: -2, y: 5, a: 1, r: -window.Math.PI / 5, c: ["#0d1b1c", "#000000", "#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK_AMETHYST] = create_craft_button(1, [{ f: create_pickaxe, x: -2, y: 5, a: 1, r: -window.Math.PI / 5, c: ["#0d1b1c", "#000000", "#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_PICK_REIDITE] = []; sprite[SPRITE.INV_PICK_REIDITE][0] = IMAGES.INV_PICK_REIDITE_OUT; sprite[SPRITE.INV_PICK_REIDITE][1] = IMAGES.INV_PICK_REIDITE_IN; sprite[SPRITE.INV_PICK_REIDITE][2] = IMAGES.INV_PICK_REIDITE_CLICK; sprite[SPRITE.CRAFT_PICK_REIDITE] = sprite[SPRITE.INV_PICK_REIDITE]; sprite[SPRITE.CHEST_PICK_REIDITE] = sprite[SPRITE.INV_PICK_REIDITE]; sprite[SPRITE.INV_STONE] = create_craft_button(1, [{ f: create_stone, x: -5, y: -5, a: 1, r: 0, c: ["#252B28", "#58645F", "#75827D"] }], 0.23, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_GOLD] = create_craft_button(1, [{ f: create_gold, x: -5, y: -5, a: 1, r: 0, c: ["#282823", "#877c2d", "#c4bc51"] }], 0.43, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_DIAMOND] = create_craft_button(1, [{ f: create_diamond, x: -5, y: -5, a: 1, r: 0, c: ["#232828", "#3fc9c9", "#74ede6"] }], 0.33, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_WOOD] = create_craft_button(1, [{ f: create_wood_fire, x: 0, y: -5, a: 1, r: window.Math.PI / 2.5, c: ["#4d2d14", "#432516"] }], 0.3, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_SWORD_WOOD] = sprite[SPRITE.INV_SWORD_WOOD]; sprite[SPRITE.CRAFT_SWORD] = sprite[SPRITE.INV_SWORD]; sprite[SPRITE.CRAFT_SWORD_GOLD] = sprite[SPRITE.INV_SWORD_GOLD]; sprite[SPRITE.CRAFT_SWORD_DIAMOND] = sprite[SPRITE.INV_SWORD_DIAMOND]; sprite[SPRITE.CRAFT_SWORD_AMETHYST] = sprite[SPRITE.INV_SWORD_AMETHYST]; sprite[SPRITE.CRAFT_PICK_WOOD] = sprite[SPRITE.INV_PICK_WOOD]; sprite[SPRITE.CRAFT_PICK] = sprite[SPRITE.INV_PICK]; sprite[SPRITE.CRAFT_PICK_GOLD] = sprite[SPRITE.INV_PICK_GOLD]; sprite[SPRITE.CRAFT_PICK_DIAMOND] = sprite[SPRITE.INV_PICK_DIAMOND]; sprite[SPRITE.CRAFT_PICK_AMETHYST] = sprite[SPRITE.INV_PICK_AMETHYST]; sprite[SPRITE.INV_PLANT] = create_craft_button(1, [{ f: create_food_plant, x: 0, y: 0, a: 1, r: 0 }], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_WORK] = create_craft_button(1, [{ f: create_workbench, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#4d2d14", "#432516", "#756e52", "#663f22", "#9e9577"] }], 0.45, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_WORK] = sprite[SPRITE.INV_WORK]; sprite[SPRITE.INV_STONE_WALL] = create_craft_button(1, [{ f: create_wall_stone, x: -2, y: -2, a: 1, r: 0, c: ["#0d1b1c", "#6a7570", "#939995", "#9baaa3", "#adbcb5", "#8a938e"] }], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_STONE_WALL] = sprite[SPRITE.INV_STONE_WALL]; sprite[SPRITE.INV_DIAMOND_WALL] = create_craft_button(1, [{ f: create_wall_diamond, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"] }], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DIAMOND_WALL] = sprite[SPRITE.INV_DIAMOND_WALL]; sprite[SPRITE.INV_AMETHYST_WALL] = create_craft_button(1, [{ f: create_wall_stone, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"] }], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_AMETHYST_WALL] = sprite[SPRITE.INV_AMETHYST_WALL]; sprite[SPRITE.INV_GOLD_WALL] = create_craft_button(1, [{ f: create_wall_gold, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#877d36", "#a08f47", "#a7983c", "#b29e4d", "#c1b06b"] }], 0.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_GOLD_WALL] = sprite[SPRITE.INV_GOLD_WALL]; sprite[SPRITE.INV_WALL] = create_craft_button(1, [{ f: create_wall, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#4c3a15", "#634828", "#564021", "#634828", "#4c3a15"] }], 0.45, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_WALL] = sprite[SPRITE.INV_WALL]; sprite[SPRITE.INV_SPIKE] = create_craft_button(1, [{ f: create_spike, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5f6061", "#939393", "#4c3a15", "#634828", "#564021", "#634828", "#4c3a15"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_SPIKE] = sprite[SPRITE.INV_SPIKE]; sprite[SPRITE.INV_GOLD_SPIKE] = create_craft_button(1, [{ f: create_spike_gold, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5f6061", "#939393", "#877d36", "#a08f47", "#a7983c", "#b29e4d", "#c1b06b"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_GOLD_SPIKE] = sprite[SPRITE.INV_GOLD_SPIKE]; sprite[SPRITE.INV_DIAMOND_SPIKE] = create_craft_button(1, [{ f: create_spike_gold, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#7d8b90", "#9facaa", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DIAMOND_SPIKE] = sprite[SPRITE.INV_DIAMOND_SPIKE]; sprite[SPRITE.INV_STONE_SPIKE] = create_craft_button(1, [{ f: create_spike_stone, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5f6061", "#939393", "#6a7570", "#939995", "#9baaa3", "#adbcb5", "#8a938e"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_STONE_SPIKE] = sprite[SPRITE.INV_STONE_SPIKE]; sprite[SPRITE.INV_AMETHYST_SPIKE] = create_craft_button(1, [{ f: create_spike_stone, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5f6061", "#939393", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_AMETHYST_SPIKE] = sprite[SPRITE.INV_AMETHYST_SPIKE]; sprite[SPRITE.INV_DOOR_WOOD_CLOSE] = create_craft_button(1, [{ f: create_door_wood, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#4c3b19", "#574122", "#644928", "#574122", "#735534"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DOOR_WOOD_CLOSE] = sprite[SPRITE.INV_DOOR_WOOD_CLOSE]; sprite[SPRITE.INV_DOOR_STONE_CLOSE] = create_craft_button(1, [{ f: create_door_stone, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#6a7570", "#939995", "#9baaa3", "#8a938e", "#adbcb5"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DOOR_STONE_CLOSE] = sprite[SPRITE.INV_DOOR_STONE_CLOSE]; sprite[SPRITE.INV_DOOR_AMETHYST_CLOSE] = create_craft_button(1, [{ f: create_door_stone, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#b15ecf", "#8c29aa", "#c26de0", "#af59cd", "#d588f1"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DOOR_AMETHYST_CLOSE] = sprite[SPRITE.INV_DOOR_AMETHYST_CLOSE]; sprite[SPRITE.INV_DOOR_GOLD_CLOSE] = create_craft_button(1, [{ f: create_door_gold, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#877d36", "#a08f47", "#a7983c", "#9a8636", "#c1b06b"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DOOR_GOLD_CLOSE] = sprite[SPRITE.INV_DOOR_GOLD_CLOSE]; sprite[SPRITE.INV_DOOR_DIAMOND_CLOSE] = create_craft_button(1, [{ f: create_door_diamond, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#5cc5ce", "#89d1d4", "#86d0d1", "#95d5d8", "#e0f2f6", "#b3e0e3"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_DOOR_DIAMOND_CLOSE] = sprite[SPRITE.INV_DOOR_DIAMOND_CLOSE]; sprite[SPRITE.INV_CHEST] = create_craft_button(1, [{ f: create_chest, x: 0, y: 2, a: 1, r: 0, c: ["#133a2b", "#9e8838", "#c4a23a", "#4c3b19", "#614627", "#614627", "#614627", "#c4a23a", "#c4a23a", "#c4a23a"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_CHEST] = sprite[SPRITE.INV_CHEST]; sprite[SPRITE.INV_MEAT] = create_craft_button(1, [{ f: create_meat, x: 0, y: -3, a: 1, r: 0, c: ["#dd5d57", "#ffffff", "#5e5d5e", "#ffffff"] }], 1.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_COOKED_MEAT] = create_craft_button(1, [{ f: create_meat, x: 0, y: -3, a: 1, r: 0, c: ["#602920", "#844f49", "#5e5d5e", "#d3ccc7"] }], 1.4, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_COOKED_MEAT] = sprite[SPRITE.INV_COOKED_MEAT]; sprite[SPRITE.INV_CORD] = create_craft_button(1, [{ f: create_cord, x: -3, y: -3, a: 1, r: 0, c: ["#cec0c4", "#ffffff", "#6d6768"] }], 0.9, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_BLUE_CORD] = create_craft_button(1, [{ f: create_cord, x: -3, y: -3, a: 1, r: 0, c: ["#d4e9ec", "#37b1d7", "#506c71"] }], 0.9, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_BLUE_CORD] = sprite[SPRITE.INV_BLUE_CORD]; sprite[SPRITE.INV_FUR] = create_craft_button(1, [{ f: create_fur, x: -3, y: -3, a: 1, r: 0, c: ["#ef96be", "#ffffff"] }], 0.5, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_FUR_BOAR] = create_craft_button(1, [{ f: create_fur, x: -3, y: -3, a: 1, r: 0, c: ["#55423e", "#ffffff"] }], 0.5, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.WINTER_HOOD_FUR] = create_craft_button(1, [{ f: create_special_fur, x: 0, y: 0, a: 1, r: 0, c: ["#ffffff", "#e7e2e2", "#b35c46", "#a34d37"] }], 0.25, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.WINTER_PEASANT_FUR] = create_craft_button(1, [{ f: create_special_fur, x: 0, y: 0, a: 1, r: 0, c: ["#14151b", "#000000", "#b35c46", "#a34d37"] }], 0.25, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_KRAKEN_SKIN] = create_craft_button(1, [{ f: create_fur, x: 0, y: 0, a: 1, r: 0, c: ["#201851", "#b6222a"] }], 0.5, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_FUR_WOLF] = create_craft_button(1, [{ f: create_fur, x: -3, y: -3, a: 1, r: 0, c: ["#231f20", "#b6222a"] }], 0.5, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_FUR_WINTER] = create_craft_button(1, [{ f: create_fur, x: -3, y: -3, a: 1, r: 0, c: ["#ffffff", "#b6222a"] }], 0.5, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_EARMUFFS] = create_craft_button(1, [{ f: create_earmuff, x: 0, y: 0, a: 1, r: 0, c: ["#f9efeb", "#dfd1cb", "#3e3c25", "#4d4a2e"] }], 0.4, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_EARMUFFS] = sprite[SPRITE.INV_EARMUFFS]; sprite[SPRITE.INV_COAT] = create_craft_button(1, [{ f: create_coat, x: 0, y: 0, a: 1, r: 0, c: ["#3e3c25", "#4d4a2e", "#f9efeb", "#dfd1cb"] }], 0.4, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_COAT] = sprite[SPRITE.INV_COAT]; sprite[SPRITE.INV_CAP_SCARF] = create_craft_button(1, [{ f: create_cap_scarf, x: 0, y: 0, a: 1, r: 0, c: ["#171a19", "#dee7e7", "#b8cccb", "#ffffff", "#e3e8e8"] }], 0.4, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CAP_SCARF] = sprite[SPRITE.INV_CAP_SCARF]; sprite[SPRITE.INV_CHRISTMAS_HAT] = create_craft_button(1, [{ f: create_christmas_hat, x: 0, y: 5, a: 1, r: 0, c: ["#171a19", "#c5232c", "#84191d", "#a72027", "#fef4f4", "#e9dad9"] }], 0.35, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CHEST_CHRISTMAS_HAT] = sprite[SPRITE.INV_CHRISTMAS_HAT]; sprite[SPRITE.INV_ELF_HAT] = create_craft_button(1, [{ f: create_elf_hat, x: 0, y: 5, a: 1, r: 0, c: ["#171a19", "#0f964c", "#106e3b", "#138344", "#fef4f4", "#e9dad9", "#C5232C", "#A92D2D"] }], 0.35, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CHEST_ELF_HAT] = sprite[SPRITE.INV_ELF_HAT]; sprite[SPRITE.INV_BANDAGE] = create_craft_button(1, [{ f: create_bandage, x: -2, y: -2, a: 1, r: 0, c: ["#ffffff", "#cec0c4"] }], 0.35, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_BANDAGE] = sprite[SPRITE.INV_BANDAGE]; sprite[SPRITE.INV_BAG] = []; sprite[SPRITE.INV_BAG][0] = IMAGES.INV_BAG_OUT; sprite[SPRITE.INV_BAG][1] = IMAGES.INV_BAG_IN; sprite[SPRITE.INV_BAG][2] = IMAGES.INV_BAG_CLICK; sprite[SPRITE.CRAFT_BAG] = sprite[SPRITE.INV_BAG]; sprite[SPRITE.INV_PITCHFORK] = []; sprite[SPRITE.INV_PITCHFORK][0] = IMAGES.INV_PITCHFORK_OUT; sprite[SPRITE.INV_PITCHFORK][1] = IMAGES.INV_PITCHFORK_IN; sprite[SPRITE.INV_PITCHFORK][2] = IMAGES.INV_PITCHFORK_CLICK; sprite[SPRITE.CRAFT_PITCHFORK] = sprite[SPRITE.INV_PITCHFORK]; sprite[SPRITE.CHEST_PITCHFORK] = sprite[SPRITE.INV_PITCHFORK]; sprite[SPRITE.INV_PITCHFORK2] = []; sprite[SPRITE.INV_PITCHFORK2][0] = IMAGES.INV_PITCHFORK2_OUT; sprite[SPRITE.INV_PITCHFORK2][1] = IMAGES.INV_PITCHFORK2_IN; sprite[SPRITE.INV_PITCHFORK2][2] = IMAGES.INV_PITCHFORK2_CLICK; sprite[SPRITE.CRAFT_PITCHFORK2] = sprite[SPRITE.INV_PITCHFORK2]; sprite[SPRITE.CHEST_PITCHFORK2] = sprite[SPRITE.INV_PITCHFORK2]; sprite[SPRITE.INV_PITCHFORK_PART] = []; sprite[SPRITE.INV_PITCHFORK_PART][0] = IMAGES.INV_PITCHFORK_PART_CLICK; sprite[SPRITE.INV_PITCHFORK_PART][1] = IMAGES.INV_PITCHFORK_PART_CLICK; sprite[SPRITE.INV_PITCHFORK_PART][2] = IMAGES.INV_PITCHFORK_PART_CLICK; sprite[SPRITE.CHEST_PITCHFORK_PART] = sprite[SPRITE.INV_PITCHFORK_PART]; sprite[SPRITE.INV_PILOT_HELMET] = []; sprite[SPRITE.INV_PILOT_HELMET][0] = IMAGES.INV_PILOT_HELMET_OUT; sprite[SPRITE.INV_PILOT_HELMET][1] = IMAGES.INV_PILOT_HELMET_IN; sprite[SPRITE.INV_PILOT_HELMET][2] = IMAGES.INV_PILOT_HELMET_CLICK; sprite[SPRITE.CRAFT_PILOT_HELMET] = sprite[SPRITE.INV_PILOT_HELMET]; sprite[SPRITE.CHEST_PILOT_HELMET] = sprite[SPRITE.INV_PILOT_HELMET]; sprite[SPRITE.INV_PILOT_GLASSES] = []; sprite[SPRITE.INV_PILOT_GLASSES][0] = IMAGES.INV_PILOT_GLASSES_CLICK; sprite[SPRITE.INV_PILOT_GLASSES][1] = IMAGES.INV_PILOT_GLASSES_CLICK; sprite[SPRITE.INV_PILOT_GLASSES][2] = IMAGES.INV_PILOT_GLASSES_CLICK; sprite[SPRITE.CHEST_PILOT_GLASSES] = sprite[SPRITE.INV_PILOT_GLASSES]; sprite[SPRITE.INV_WOOD_TOWER] = []; sprite[SPRITE.INV_WOOD_TOWER][0] = IMAGES.INV_WOOD_TOWER_OUT; sprite[SPRITE.INV_WOOD_TOWER][1] = IMAGES.INV_WOOD_TOWER_IN; sprite[SPRITE.INV_WOOD_TOWER][2] = IMAGES.INV_WOOD_TOWER_CLICK; sprite[SPRITE.CRAFT_WOOD_TOWER] = sprite[SPRITE.INV_WOOD_TOWER]; sprite[SPRITE.CHEST_WOOD_TOWER] = sprite[SPRITE.INV_WOOD_TOWER]; sprite[SPRITE.INV_WOOD_DOOR_SPIKE] = []; sprite[SPRITE.INV_WOOD_DOOR_SPIKE][0] = IMAGES.INV_WOOD_DOOR_SPIKE_OUT; sprite[SPRITE.INV_WOOD_DOOR_SPIKE][1] = IMAGES.INV_WOOD_DOOR_SPIKE_IN; sprite[SPRITE.INV_WOOD_DOOR_SPIKE][2] = IMAGES.INV_WOOD_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_WOOD_DOOR_SPIKE] = sprite[SPRITE.INV_WOOD_DOOR_SPIKE]; sprite[SPRITE.CHEST_WOOD_DOOR_SPIKE] = sprite[SPRITE.INV_WOOD_DOOR_SPIKE]; sprite[SPRITE.INV_STONE_DOOR_SPIKE] = []; sprite[SPRITE.INV_STONE_DOOR_SPIKE][0] = IMAGES.INV_STONE_DOOR_SPIKE_OUT; sprite[SPRITE.INV_STONE_DOOR_SPIKE][1] = IMAGES.INV_STONE_DOOR_SPIKE_IN; sprite[SPRITE.INV_STONE_DOOR_SPIKE][2] = IMAGES.INV_STONE_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_STONE_DOOR_SPIKE] = sprite[SPRITE.INV_STONE_DOOR_SPIKE]; sprite[SPRITE.CHEST_STONE_DOOR_SPIKE] = sprite[SPRITE.INV_STONE_DOOR_SPIKE]; sprite[SPRITE.INV_GOLD_DOOR_SPIKE] = []; sprite[SPRITE.INV_GOLD_DOOR_SPIKE][0] = IMAGES.INV_GOLD_DOOR_SPIKE_OUT; sprite[SPRITE.INV_GOLD_DOOR_SPIKE][1] = IMAGES.INV_GOLD_DOOR_SPIKE_IN; sprite[SPRITE.INV_GOLD_DOOR_SPIKE][2] = IMAGES.INV_GOLD_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_GOLD_DOOR_SPIKE] = sprite[SPRITE.INV_GOLD_DOOR_SPIKE]; sprite[SPRITE.CHEST_GOLD_DOOR_SPIKE] = sprite[SPRITE.INV_GOLD_DOOR_SPIKE]; sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE] = []; sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE][0] = IMAGES.INV_DIAMOND_DOOR_SPIKE_OUT; sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE][1] = IMAGES.INV_DIAMOND_DOOR_SPIKE_IN; sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE][2] = IMAGES.INV_DIAMOND_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_DIAMOND_DOOR_SPIKE] = sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE]; sprite[SPRITE.CHEST_DIAMOND_DOOR_SPIKE] = sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE]; sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE] = []; sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE][0] = IMAGES.INV_AMETHYST_DOOR_SPIKE_OUT; sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE][1] = IMAGES.INV_AMETHYST_DOOR_SPIKE_IN; sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE][2] = IMAGES.INV_AMETHYST_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_AMETHYST_DOOR_SPIKE] = sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE]; sprite[SPRITE.CHEST_AMETHYST_DOOR_SPIKE] = sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE]; sprite[SPRITE.INV_REIDITE_DOOR_SPIKE] = []; sprite[SPRITE.INV_REIDITE_DOOR_SPIKE][0] = IMAGES.INV_REIDITE_DOOR_SPIKE_OUT; sprite[SPRITE.INV_REIDITE_DOOR_SPIKE][1] = IMAGES.INV_REIDITE_DOOR_SPIKE_IN; sprite[SPRITE.INV_REIDITE_DOOR_SPIKE][2] = IMAGES.INV_REIDITE_DOOR_SPIKE_CLICK; sprite[SPRITE.CRAFT_REIDITE_DOOR_SPIKE] = sprite[SPRITE.INV_REIDITE_DOOR_SPIKE]; sprite[SPRITE.CHEST_REIDITE_DOOR_SPIKE] = sprite[SPRITE.INV_REIDITE_DOOR_SPIKE]; sprite[SPRITE.INV_REIDITE_DOOR] = []; sprite[SPRITE.INV_REIDITE_DOOR][0] = IMAGES.INV_REIDITE_DOOR_OUT; sprite[SPRITE.INV_REIDITE_DOOR][1] = IMAGES.INV_REIDITE_DOOR_IN; sprite[SPRITE.INV_REIDITE_DOOR][2] = IMAGES.INV_REIDITE_DOOR_CLICK; sprite[SPRITE.CRAFT_REIDITE_DOOR] = sprite[SPRITE.INV_REIDITE_DOOR]; sprite[SPRITE.CHEST_REIDITE_DOOR] = sprite[SPRITE.INV_REIDITE_DOOR]; sprite[SPRITE.INV_REIDITE_SPIKE] = []; sprite[SPRITE.INV_REIDITE_SPIKE][0] = IMAGES.INV_REIDITE_SPIKE_OUT; sprite[SPRITE.INV_REIDITE_SPIKE][1] = IMAGES.INV_REIDITE_SPIKE_IN; sprite[SPRITE.INV_REIDITE_SPIKE][2] = IMAGES.INV_REIDITE_SPIKE_CLICK; sprite[SPRITE.CRAFT_REIDITE_SPIKE] = sprite[SPRITE.INV_REIDITE_SPIKE]; sprite[SPRITE.CHEST_REIDITE_SPIKE] = sprite[SPRITE.INV_REIDITE_SPIKE]; sprite[SPRITE.INV_REIDITE_WALL] = []; sprite[SPRITE.INV_REIDITE_WALL][0] = IMAGES.INV_REIDITE_WALL_OUT; sprite[SPRITE.INV_REIDITE_WALL][1] = IMAGES.INV_REIDITE_WALL_IN; sprite[SPRITE.INV_REIDITE_WALL][2] = IMAGES.INV_REIDITE_WALL_CLICK; sprite[SPRITE.CRAFT_REIDITE_WALL] = sprite[SPRITE.INV_REIDITE_WALL]; sprite[SPRITE.CHEST_REIDITE_WALL] = sprite[SPRITE.INV_REIDITE_WALL]; sprite[SPRITE.INV_PENGUIN_FEATHER] = []; sprite[SPRITE.INV_PENGUIN_FEATHER][0] = IMAGES.INV_PENGUIN_FEATHER; sprite[SPRITE.INV_PENGUIN_FEATHER][1] = IMAGES.INV_PENGUIN_FEATHER; sprite[SPRITE.INV_PENGUIN_FEATHER][2] = IMAGES.INV_PENGUIN_FEATHER; sprite[SPRITE.CHEST_PENGUIN_FEATHER] = sprite[SPRITE.INV_PENGUIN_FEATHER]; sprite[SPRITE.INV_HAWK_FEATHER] = []; sprite[SPRITE.INV_HAWK_FEATHER][0] = IMAGES.INV_HAWK_FEATHER; sprite[SPRITE.INV_HAWK_FEATHER][1] = IMAGES.INV_HAWK_FEATHER; sprite[SPRITE.INV_HAWK_FEATHER][2] = IMAGES.INV_HAWK_FEATHER; sprite[SPRITE.CHEST_HAWK_FEATHER] = sprite[SPRITE.INV_HAWK_FEATHER]; sprite[SPRITE.INV_VULTURE_FEATHER] = []; sprite[SPRITE.INV_VULTURE_FEATHER][0] = IMAGES.INV_VULTURE_FEATHER; sprite[SPRITE.INV_VULTURE_FEATHER][1] = IMAGES.INV_VULTURE_FEATHER; sprite[SPRITE.INV_VULTURE_FEATHER][2] = IMAGES.INV_VULTURE_FEATHER; sprite[SPRITE.CHEST_VULTURE_FEATHER] = sprite[SPRITE.INV_VULTURE_FEATHER]; sprite[SPRITE.INV_EMERALD] = []; sprite[SPRITE.INV_EMERALD][0] = IMAGES.INV_EMERALD; sprite[SPRITE.INV_EMERALD][1] = IMAGES.INV_EMERALD; sprite[SPRITE.INV_EMERALD][2] = IMAGES.INV_EMERALD; sprite[SPRITE.CHEST_EMERALD] = sprite[SPRITE.INV_EMERALD]; sprite[SPRITE.INV_SADDLE] = []; sprite[SPRITE.INV_SADDLE][0] = IMAGES.INV_SADDLE_OUT; sprite[SPRITE.INV_SADDLE][1] = IMAGES.INV_SADDLE_IN; sprite[SPRITE.INV_SADDLE][2] = IMAGES.INV_SADDLE_CLICK; sprite[SPRITE.CRAFT_SADDLE] = sprite[SPRITE.INV_SADDLE]; sprite[SPRITE.CHEST_SADDLE] = sprite[SPRITE.INV_SADDLE]; sprite[SPRITE.INV_WAND1] = []; sprite[SPRITE.INV_WAND1][0] = IMAGES.INV_WAND1_OUT; sprite[SPRITE.INV_WAND1][1] = IMAGES.INV_WAND1_IN; sprite[SPRITE.INV_WAND1][2] = IMAGES.INV_WAND1_CLICK; sprite[SPRITE.CRAFT_WAND1] = sprite[SPRITE.INV_WAND1]; sprite[SPRITE.CHEST_WAND1] = sprite[SPRITE.INV_WAND1]; sprite[SPRITE.INV_WAND2] = []; sprite[SPRITE.INV_WAND2][0] = IMAGES.INV_WAND2_OUT; sprite[SPRITE.INV_WAND2][1] = IMAGES.INV_WAND2_IN; sprite[SPRITE.INV_WAND2][2] = IMAGES.INV_WAND2_CLICK; sprite[SPRITE.CRAFT_WAND2] = sprite[SPRITE.INV_WAND2]; sprite[SPRITE.CHEST_WAND2] = sprite[SPRITE.INV_WAND2]; sprite[SPRITE.INV_MOUNT_BOAR] = []; sprite[SPRITE.INV_MOUNT_BOAR][0] = IMAGES.INV_MOUNT_BOAR_OUT; sprite[SPRITE.INV_MOUNT_BOAR][1] = IMAGES.INV_MOUNT_BOAR_IN; sprite[SPRITE.INV_MOUNT_BOAR][2] = IMAGES.INV_MOUNT_BOAR_CLICK; sprite[SPRITE.CRAFT_MOUNT_BOAR] = sprite[SPRITE.INV_MOUNT_BOAR]; sprite[SPRITE.CHEST_MOUNT_BOAR] = sprite[SPRITE.INV_MOUNT_BOAR]; sprite[SPRITE.INV_CRAB_BOSS] = []; sprite[SPRITE.INV_CRAB_BOSS][0] = IMAGES.INV_CRAB_BOSS_OUT; sprite[SPRITE.INV_CRAB_BOSS][1] = IMAGES.INV_CRAB_BOSS_IN; sprite[SPRITE.INV_CRAB_BOSS][2] = IMAGES.INV_CRAB_BOSS_CLICK; sprite[SPRITE.CRAFT_CRAB_BOSS] = sprite[SPRITE.INV_CRAB_BOSS]; sprite[SPRITE.CHEST_CRAB_BOSS] = sprite[SPRITE.INV_CRAB_BOSS]; sprite[SPRITE.INV_HAWK] = []; sprite[SPRITE.INV_HAWK][0] = IMAGES.INV_HAWK_OUT; sprite[SPRITE.INV_HAWK][1] = IMAGES.INV_HAWK_IN; sprite[SPRITE.INV_HAWK][2] = IMAGES.INV_HAWK_CLICK; sprite[SPRITE.CRAFT_HAWK] = sprite[SPRITE.INV_HAWK]; sprite[SPRITE.CHEST_HAWK] = sprite[SPRITE.INV_HAWK]; sprite[SPRITE.INV_VULTURE] = []; sprite[SPRITE.CRAFT_VULTURE] = sprite[SPRITE.INV_VULTURE]; sprite[SPRITE.CHEST_VULTURE] = sprite[SPRITE.INV_VULTURE]; sprite[SPRITE.INV_TURBAN1] = []; sprite[SPRITE.INV_TURBAN1][0] = IMAGES.INV_TURBAN1_OUT; sprite[SPRITE.INV_TURBAN1][1] = IMAGES.INV_TURBAN1_IN; sprite[SPRITE.INV_TURBAN1][2] = IMAGES.INV_TURBAN1_CLICK; sprite[SPRITE.CRAFT_TURBAN1] = sprite[SPRITE.INV_TURBAN1]; sprite[SPRITE.CHEST_TURBAN1] = sprite[SPRITE.INV_TURBAN1]; sprite[SPRITE.INV_TURBAN2] = []; sprite[SPRITE.INV_TURBAN2][0] = IMAGES.INV_TURBAN2_OUT; sprite[SPRITE.INV_TURBAN2][1] = IMAGES.INV_TURBAN2_IN; sprite[SPRITE.INV_TURBAN2][2] = IMAGES.INV_TURBAN2_CLICK; sprite[SPRITE.CRAFT_TURBAN2] = sprite[SPRITE.INV_TURBAN2]; sprite[SPRITE.CHEST_TURBAN2] = sprite[SPRITE.INV_TURBAN2]; sprite[SPRITE.INV_PLANE] = []; sprite[SPRITE.INV_PLANE][0] = IMAGES.INV_PLANE_OUT; sprite[SPRITE.INV_PLANE][1] = IMAGES.INV_PLANE_IN; sprite[SPRITE.INV_PLANE][2] = IMAGES.INV_PLANE_CLICK; sprite[SPRITE.CRAFT_PLANE] = sprite[SPRITE.INV_PLANE]; sprite[SPRITE.CHEST_PLANE] = sprite[SPRITE.INV_PLANE]; sprite[SPRITE.INV_BABY_DRAGON] = []; sprite[SPRITE.INV_BABY_DRAGON][0] = IMAGES.INV_BABY_DRAGON_OUT; sprite[SPRITE.INV_BABY_DRAGON][1] = IMAGES.INV_BABY_DRAGON_IN; sprite[SPRITE.INV_BABY_DRAGON][2] = IMAGES.INV_BABY_DRAGON_CLICK; sprite[SPRITE.CRAFT_BABY_DRAGON] = sprite[SPRITE.INV_BABY_DRAGON]; sprite[SPRITE.CHEST_BABY_DRAGON] = sprite[SPRITE.INV_BABY_DRAGON]; sprite[SPRITE.INV_BABY_MAMMOTH] = []; sprite[SPRITE.INV_BABY_MAMMOTH][0] = IMAGES.INV_BABY_MAMMOTH_OUT; sprite[SPRITE.INV_BABY_MAMMOTH][1] = IMAGES.INV_BABY_MAMMOTH_IN; sprite[SPRITE.INV_BABY_MAMMOTH][2] = IMAGES.INV_BABY_MAMMOTH_CLICK; sprite[SPRITE.CRAFT_BABY_MAMMOTH] = sprite[SPRITE.INV_BABY_MAMMOTH]; sprite[SPRITE.CHEST_BABY_MAMMOTH] = sprite[SPRITE.INV_BABY_MAMMOTH]; sprite[SPRITE.INV_BABY_LAVA] = []; sprite[SPRITE.INV_BABY_LAVA][0] = IMAGES.INV_BABY_LAVA_OUT; sprite[SPRITE.INV_BABY_LAVA][1] = IMAGES.INV_BABY_LAVA_IN; sprite[SPRITE.INV_BABY_LAVA][2] = IMAGES.INV_BABY_LAVA_CLICK; sprite[SPRITE.CRAFT_BABY_LAVA] = sprite[SPRITE.INV_BABY_LAVA]; sprite[SPRITE.CHEST_BABY_LAVA] = sprite[SPRITE.INV_BABY_LAVA]; sprite[SPRITE.INV_BREAD_OVEN] = create_craft_button( 1, [ { f: create_bread_oven, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#515C57", "#3A4942", "#68736F", "#C1C0C0", "#be8d50", "#7d5234", "#222825", "#4D5752", "#e48727", "#d4a872", "#232a27"] }, { f: create_bread_light_up, x: 0, y: 0, a: 1, r: 0, c: ["#e4c027"] } ], 0.14, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5 ); sprite[SPRITE.CRAFT_BREAD_OVEN] = sprite[SPRITE.INV_BREAD_OVEN]; sprite[SPRITE.INV_FURNACE] = create_craft_button(1, [{ f: create_furnace_on, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#939393", "#5f6061", "#c0c0c0", "#ffad22", "#fffdd5", "#fee764"] }], 0.18, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_FURNACE] = sprite[SPRITE.INV_FURNACE]; sprite[SPRITE.INV_BED] = create_craft_button(1, [{ f: create_bed, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#554139", "#3f332a", "#261912", "#eee6c5", "#d1c599", "#554139", "#3f332a", "#86509b", "#703a99", "#ded4b4", "#d6ceab", "#c796c2", "#bc83b7", "#ffffff", "#87519c", "#703e94", "#3eb67f", "#218f65", "#efe7c5", "#d093c4"] }], 0.32, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_BED] = sprite[SPRITE.INV_BED]; sprite[SPRITE.CHEST_BED] = sprite[SPRITE.INV_BED]; sprite[SPRITE.INV_CRAB_LOOT] = create_craft_button(1, [{ f: create_crab_loot, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#c04933", "#a33e2b", "#ee593d", "#c04933"] }], 0.17, ["#3ba578", "#4eb687", "#3da34d"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CHEST_CRAB_LOOT] = sprite[SPRITE.INV_CRAB_LOOT]; sprite[SPRITE.INV_CRAB_SPEAR] = create_craft_button(1, [{ f: create_crab_spear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#58452b", "#47341d", "#ee593d", "#c04933", "#c04933", "#a33e2b", "#c3be9a", "#7f6d52"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CRAB_SPEAR] = sprite[SPRITE.INV_CRAB_SPEAR]; sprite[SPRITE.CHEST_CRAB_SPEAR] = sprite[SPRITE.INV_CRAB_SPEAR]; sprite[SPRITE.INV_WOOD_SPEAR] = create_craft_button(1, [{ f: create_wood_spear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#58452b", "#47341d", "#765d42", "#c3be9a", "#7f6d52"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_WOOD_SPEAR] = sprite[SPRITE.INV_WOOD_SPEAR]; sprite[SPRITE.INV_SPEAR] = create_craft_button(1, [{ f: create_stonespear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#4d2d14", "#432516", "#c3be9a", "#7f6d52", "#7a7575", "#454749", "#8c8787", "#939393", "#5f6061", "#aaa6a6"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SPEAR] = sprite[SPRITE.INV_SPEAR]; sprite[SPRITE.INV_GOLD_SPEAR] = create_craft_button(1, [{ f: create_goldspear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#493e26", "#382e19", "#a69e39", "#9c8828", "#bab143", "#c4bc51", "#b29c32", "#d2ca59"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_GOLD_SPEAR] = sprite[SPRITE.INV_GOLD_SPEAR]; sprite[SPRITE.INV_DIAMOND_SPEAR] = create_craft_button(1, [{ f: create_diamondspear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#4ba8b4", "#198a82", "#6ccad7", "#63c9d6", "#29aaa1", "#7bd9e6"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DIAMOND_SPEAR] = sprite[SPRITE.INV_DIAMOND_SPEAR]; sprite[SPRITE.INV_AMETHYST_SPEAR] = create_craft_button(1, [{ f: create_amespear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#9443b1", "#6f1988", "#a752c6", "#9e35be", "#8c29aa", "#b864d6"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_AMETHYST_SPEAR] = sprite[SPRITE.INV_AMETHYST_SPEAR]; sprite[SPRITE.INV_DRAGON_SPEAR] = create_craft_button(1, [{ f: create_dragon_spear, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#1e2b34", "#151c24", "#99d7dd", "#7dcbd1", "#c6e8eb", "#aadee8", "#b7e2e5"] }], 0.38, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DRAGON_SPEAR] = sprite[SPRITE.INV_DRAGON_SPEAR]; sprite[SPRITE.CHEST_DRAGON_SPEAR] = sprite[SPRITE.INV_DRAGON_SPEAR]; sprite[SPRITE.INV_HAMMER] = create_craft_button(1, [{ f: create_hammer, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#4d2d14", "#432516", "#939393", "#5f6061"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_HAMMER] = sprite[SPRITE.INV_HAMMER]; sprite[SPRITE.INV_SPANNER] = create_craft_button(1, [{ f: create_spanner, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#939393", "#5f6061"] }], 0.3, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SPANNER] = sprite[SPRITE.INV_SPANNER]; sprite[SPRITE.INV_GOLD_WRENCH] = create_craft_button(1, [{ f: create_spanner, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#939393", "#5f6061"] }], 0.3, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.INV_SUPER_HAMMER] = create_craft_button(1, [{ f: create_superhammer, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#9b5927", "#7a3610", "#1e0302", "#0d825b", "#6bd16e", "#17915d", "#89e5aa", "#16935d", "#a0efc4", "#28b26d", "#cdf4cb", "#42cc90"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SUPER_HAMMER] = sprite[SPRITE.INV_SUPER_HAMMER]; sprite[SPRITE.INV_HAMMER_GOLD] = create_craft_button(1, [{ f: create_hammer, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_HAMMER_GOLD] = sprite[SPRITE.INV_HAMMER_GOLD]; sprite[SPRITE.INV_HAMMER_DIAMOND] = create_craft_button(1, [{ f: create_hammer, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_HAMMER_DIAMOND] = sprite[SPRITE.INV_HAMMER_DIAMOND]; sprite[SPRITE.INV_HAMMER_AMETHYST] = create_craft_button(1, [{ f: create_hammer, x: 2, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_HAMMER_AMETHYST] = sprite[SPRITE.INV_HAMMER_AMETHYST]; sprite[SPRITE.INV_HAMMER_REIDITE] = []; sprite[SPRITE.INV_HAMMER_REIDITE][0] = IMAGES.INV_HAMMER_REIDITE_OUT; sprite[SPRITE.INV_HAMMER_REIDITE][1] = IMAGES.INV_HAMMER_REIDITE_IN; sprite[SPRITE.INV_HAMMER_REIDITE][2] = IMAGES.INV_HAMMER_REIDITE_CLICK; sprite[SPRITE.CHEST_HAMMER_REIDITE] = sprite[SPRITE.INV_HAMMER_REIDITE]; sprite[SPRITE.CRAFT_HAMMER_REIDITE] = sprite[SPRITE.INV_HAMMER_REIDITE]; sprite[SPRITE.INV_EMERALD_MACHINE] = []; sprite[SPRITE.INV_EMERALD_MACHINE][0] = IMAGES.INV_EMERALD_MACHINE_OUT; sprite[SPRITE.INV_EMERALD_MACHINE][1] = IMAGES.INV_EMERALD_MACHINE_IN; sprite[SPRITE.INV_EMERALD_MACHINE][2] = IMAGES.INV_EMERALD_MACHINE_CLICK; sprite[SPRITE.CHEST_EMERALD_MACHINE] = sprite[SPRITE.INV_EMERALD_MACHINE]; sprite[SPRITE.CRAFT_EMERALD_MACHINE] = sprite[SPRITE.INV_EMERALD_MACHINE]; sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE] = []; sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE][0] = IMAGES.INV_EXTRACTOR_MACHINE_STONE_OUT; sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE][1] = IMAGES.INV_EXTRACTOR_MACHINE_STONE_IN; sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE][2] = IMAGES.INV_EXTRACTOR_MACHINE_STONE_CLICK; sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_STONE] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE]; sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_STONE] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE]; sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD] = []; sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD][0] = IMAGES.INV_EXTRACTOR_MACHINE_GOLD_OUT; sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD][1] = IMAGES.INV_EXTRACTOR_MACHINE_GOLD_IN; sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD][2] = IMAGES.INV_EXTRACTOR_MACHINE_GOLD_CLICK; sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_GOLD] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD]; sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_GOLD] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD]; sprite[SPRITE.INV_DIAMOND_EXTRACTOR] = []; sprite[SPRITE.INV_DIAMOND_EXTRACTOR][0] = IMAGES.INV_DIAMOND_EXTRACTOR_OUT; sprite[SPRITE.INV_DIAMOND_EXTRACTOR][1] = IMAGES.INV_DIAMOND_EXTRACTOR_IN; sprite[SPRITE.INV_DIAMOND_EXTRACTOR][2] = IMAGES.INV_DIAMOND_EXTRACTOR_CLICK; sprite[SPRITE.CHEST_DIAMOND_EXTRACTOR] = sprite[SPRITE.INV_DIAMOND_EXTRACTOR]; sprite[SPRITE.CRAFT_DIAMOND_EXTRACTOR] = sprite[SPRITE.INV_DIAMOND_EXTRACTOR]; sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST] = []; sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST][0] = IMAGES.INV_EXTRACTOR_MACHINE_AMETHYST_OUT; sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST][1] = IMAGES.INV_EXTRACTOR_MACHINE_AMETHYST_IN; sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST][2] = IMAGES.INV_EXTRACTOR_MACHINE_AMETHYST_CLICK; sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_AMETHYST] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST]; sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_AMETHYST] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST]; sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE] = []; sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE][0] = IMAGES.INV_EXTRACTOR_MACHINE_REIDITE_OUT; sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE][1] = IMAGES.INV_EXTRACTOR_MACHINE_REIDITE_IN; sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE][2] = IMAGES.INV_EXTRACTOR_MACHINE_REIDITE_CLICK; sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_REIDITE] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE]; sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_REIDITE] = sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE]; sprite[SPRITE.INV_LOCK] = create_craft_button(1, [{ f: create_lock, x: -2, y: -2, a: 1, r: 0, c: ["#141414", "#816511", "#c4a23a", "#3a3a3a"] }], 0.8, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_LOCK] = sprite[SPRITE.INV_LOCK]; sprite[SPRITE.INV_LOCKPICK] = create_craft_button(1, [{ f: create_lockpick, x: -2, y: -2, a: 1, r: -window.Math.PI / 5, c: ["#141414", "#c4a23a", "#816511"] }], 0.08, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_LOCKPICK] = sprite[SPRITE.INV_LOCKPICK]; sprite[SPRITE.INV_DRAGON_HEART] = create_craft_button(1, [{ f: create_dragon_heart, x: -2, y: -2, a: 1, r: 0, c: ["#141414", "#178a99", "#0a6372", "#03282e"] }], 0.3, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.7); sprite[SPRITE.INV_LAVA_HEART] = create_craft_button(1, [{ f: create_dragon_heart, x: -2, y: -2, a: 1, r: 0, c: ["#120202", "#991616", "#750a0a", "#120202"] }], 0.3, ["#2b5c48", "#2b5c48", "#2b5c48"], 0.7); sprite[SPRITE.INV_RESURRECTION] = create_craft_button( 1, [ { f: create_resurrection_ground, x: 0, y: 0, a: 1, r: 0, c: ["#347f93", "#54a4ba"] }, { f: create_resurrection, x: 0, y: 0, a: 1, r: 0, c: ["#347f93", "#54a4ba", "#1c2528", "#a9e4ed", "#86d4e0", "#959da0", "#697072", "#929da0", "#afb9bc", "#418ba5", "#59b8ce"] }, { f: create_resurrection_rotate, x: 0, y: 0, a: 1, r: 0, c: ["#a9e4ed", "#86d4e0"] }, { f: create_resurrection_hole, x: 0, y: 0, a: 1, r: 0, c: ["#a9e4ed", "#86d4e0", "#418ba5", "#59b8ce"] } ], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5 ); sprite[SPRITE.CRAFT_RESURRECTION] = sprite[SPRITE.INV_RESURRECTION]; sprite[SPRITE.INV_TOTEM] = create_craft_button(1, [{ f: create_headtotem, x: 45, y: 70, a: 1, r: 0, c: ["#0d1b1c", "#4c3a15", "#634828", "#564021"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_TOTEM] = sprite[SPRITE.INV_TOTEM]; sprite[SPRITE.INV_AMETHYST_HELMET] = create_craft_button(1, [{ f: create_amethyst_helmet, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#8c55b7", "#652d8e", "#79359e", "#5eccd1", "#4badad", "#9e6ac6"] }], 0.52, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_AMETHYST_HELMET] = sprite[SPRITE.INV_AMETHYST_HELMET]; sprite[SPRITE.INV_WINTER_HOOD] = create_craft_button(1, [{ f: create_winter_hood, x: 0, y: 0, a: 1, r: 0, c: ["#2a2938", "#242330", "#313041", "#1b1a25"] }], 0.12, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_WINTER_HOOD] = sprite[SPRITE.INV_WINTER_HOOD]; sprite[SPRITE.INV_HOOD] = create_craft_button(1, [{ f: create_hood, x: 0, y: 0, a: 1, r: 0, c: ["#2a2938", "#242330", "#313041"] }], 0.25, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_HOOD] = sprite[SPRITE.INV_HOOD]; sprite[SPRITE.INV_WINTER_PEASANT] = create_craft_button(1, [{ f: create_peasant, x: 0, y: 3, a: 1, r: 0, c: ["#1d1d22", "#e2e1e1", "#d2cbcb", "#cfcbc8", "#beb5b5", "#ada0a0"] }], 0.39, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_WINTER_PEASANT] = sprite[SPRITE.INV_WINTER_PEASANT]; sprite[SPRITE.INV_PEASANT] = create_craft_button(1, [{ f: create_peasant, x: 0, y: 3, a: 1, r: 0, c: ["#1d1d22", "#8c7654", "#785f4c", "#a88e6c", "#785f4c", "#705845"] }], 0.39, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_PEASANT] = sprite[SPRITE.INV_PEASANT]; sprite[SPRITE.INV_CROWN_GREEN] = create_craft_button(1, [{ f: create_crown, x: 0, y: 10, a: 1, r: 0, c: ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#49B669", "#19994C", "#71C187"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CROWN_GREEN] = sprite[SPRITE.INV_CROWN_GREEN]; sprite[SPRITE.INV_CROWN_ORANGE] = create_craft_button(1, [{ f: create_crown, x: 0, y: 10, a: 1, r: 0, c: ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#C45727", "#994617", "#DB9358"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CROWN_ORANGE] = sprite[SPRITE.INV_CROWN_ORANGE]; sprite[SPRITE.INV_CROWN_BLUE] = create_craft_button(1, [{ f: create_crown, x: 0, y: 10, a: 1, r: 0, c: ["#0d1b1c", "#A5A244", "#D8DC74", "#C0BF55", "#2792C1", "#196599", "#59C0D8"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CROWN_BLUE] = sprite[SPRITE.INV_CROWN_BLUE]; sprite[SPRITE.INV_CROWN_CRAB] = create_craft_button(1, [{ f: create_crab_crown, x: -1, y: 0, a: 1, r: 0, c: ["#000000", "#b03431", "#94312d", "#bd3c33", "#de5445"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_CROWN_CRAB] = sprite[SPRITE.INV_CROWN_CRAB]; sprite[SPRITE.CHEST_CROWN_CRAB] = sprite[SPRITE.INV_CROWN_CRAB]; sprite[SPRITE.INV_DRAGON_HELMET] = create_craft_button(1, [{ f: create_dragon_helmet, x: 0, y: 0, a: 1, r: 0, c: ["#0d1b1c", "#cae9eb", "#75bcae", "#ffffff", "#51736d", "#2b4d48", "#1b3a3a", "#80ccca", "#59ada7"] }], 0.2, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DRAGON_HELMET] = sprite[SPRITE.INV_DRAGON_HELMET]; sprite[SPRITE.INV_DRAGON_SWORD] = create_craft_button(1, [{ f: create_dragon_sword, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#284c4a", "#193533", "#c7efef", "#7fccca"] }], 0.75, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DRAGON_SWORD] = sprite[SPRITE.INV_DRAGON_SWORD]; sprite[SPRITE.INV_DRAGON_CUBE] = create_craft_button(1, [{ f: create_dragon_cube, x: 0, y: 0, a: 1, r: 0, c: ["#44bae0", "#9fdae9", "#7dd1ea", "#c6e8ef"] }], 0.55, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_DRAGON_ORB] = create_craft_button(1, [{ f: create_blue_orb, x: 0, y: 0, a: 1, r: 0, c: ["#44bae0", "#9fdae9", "#7dd1ea", "#c6e8ef"] }], 0.55, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_LAVA_CUBE] = create_craft_button(1, [{ f: create_dragon_cube, x: 0, y: 0, a: 1, r: 0, c: ["#e04444", "#e99f9f", "#eb7e7e", "#eec6c6"] }], 0.55, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_LAVA_ORB] = create_craft_button(1, [{ f: create_blue_orb, x: 0, y: 0, a: 1, r: 0, c: ["#e04444", "#e99f9f", "#eb7e7e", "#eec6c6"] }], 0.55, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.GEM_GREEN] = create_craft_button(1, [{ f: create_gemme_green, x: 0, y: 0, a: 1, r: 0, c: ["#59ba72", "#94d966", "#5aa628", "#0d1b1c", "#38874d"] }], 0.35, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.GEM_ORANGE] = create_craft_button(1, [{ f: create_gemme_green, x: 0, y: 0, a: 1, r: 0, c: ["#C45727", "#de7d46", "#DB9358", "#0d1b1c", "#994617"] }], 0.35, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.GEM_BLUE] = create_craft_button(1, [{ f: create_gemme_green, x: 0, y: 0, a: 1, r: 0, c: ["#3a9dbd", "#59C0D8", "#48abcb", "#0d1b1c", "#196599"] }], 0.35, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_SHOVEL] = create_craft_button(1, [{ f: create_shovel, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#6d5041", "#4f3d35", "#939393", "#5f6061", "#757575"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SHOVEL] = sprite[SPRITE.INV_SHOVEL]; sprite[SPRITE.INV_SHOVEL_GOLD] = create_craft_button(1, [{ f: create_shovel, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#493e26", "#382e19", "#c4bc51", "#b29c32", "#b4ac45"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SHOVEL_GOLD] = sprite[SPRITE.INV_SHOVEL_GOLD]; sprite[SPRITE.INV_SHOVEL_DIAMOND] = create_craft_button(1, [{ f: create_shovel, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#63c9d6", "#29aaa1", "#42aab8"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SHOVEL_DIAMOND] = sprite[SPRITE.INV_SHOVEL_DIAMOND]; sprite[SPRITE.INV_SHOVEL_AMETHYST] = create_craft_button(1, [{ f: create_shovel, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#262114", "#211108", "#b864d6", "#8c29aa", "#a853c7"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SHOVEL_AMETHYST] = sprite[SPRITE.INV_SHOVEL_AMETHYST]; sprite[SPRITE.INV_SHOVEL_REIDITE] = create_craft_button(1, [{ f: create_shovel, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#0d1b1c", "#6c6464", "#524d4d", "#c24c3a", "#8f392a", "#a03e30"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SHOVEL_REIDITE] = sprite[SPRITE.INV_SHOVEL_REIDITE]; sprite[SPRITE.INV_EXPLORER_HAT] = create_craft_button(1, [{ f: create_explorer_hat, x: 0, y: 0, a: 1, r: 0, c: ["#c9a65f", "#ae863f", "#655530", "#4a391c", "#ebdd79", "#4a421c"] }], 0.35, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_EXPLORER_HAT] = sprite[SPRITE.INV_EXPLORER_HAT]; sprite[SPRITE.INV_WOOD_HELMET] = create_craft_button(1, [{ f: create_wooden_helmet, x: 0, y: 0, a: 1, r: 0, c: ["#252525", "#73583e", "#493425", "#7d6144"] }], 0.35, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_WOOD_HELMET] = sprite[SPRITE.INV_WOOD_HELMET]; sprite[SPRITE.INV_STONE_HELMET] = create_craft_button(1, [{ f: create_stone_helmet, x: 0, y: -2, a: 1, r: 0, c: ["#252525", "#808080", "#4a4a4a", "#9e9c8b", "#615c53", "#686969", "#8a8776", "#555555", "#747474", "#969696", "#454545"] }], 0.4, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_STONE_HELMET] = sprite[SPRITE.INV_STONE_HELMET]; sprite[SPRITE.INV_GOLD_HELMET] = create_craft_button(1, [{ f: create_gold_helmet, x: 0, y: 0, a: 1, r: 0, c: ["#dbce71", "#b29c32", "#c4bc51"] }], 0.35, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_GOLD_HELMET] = sprite[SPRITE.INV_GOLD_HELMET]; sprite[SPRITE.INV_DIAMOND_HELMET] = create_craft_button(1, [{ f: create_diamond_helmet, x: 0, y: 0, a: 1, r: 0, c: ["#717171", "#485252", "#555555", "#65c7cd", "#4aadad", "#358d8b", "#c1e6ea", "#a6dce4"] }], 0.45, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DIAMOND_HELMET] = sprite[SPRITE.INV_DIAMOND_HELMET]; sprite[SPRITE.INV_BOOK] = create_craft_button(1, [{ f: create_book, x: 0, y: 0, a: 1, r: 0, c: ["#511f00", "#2f1300", "#ffffff", "#d4d4d4", "#5b2400", "#984e21"] }], 0.15, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_BOOK] = sprite[SPRITE.INV_BOOK]; sprite[SPRITE.INV_PAPER] = create_craft_button(1, [{ f: create_paper, x: 0, y: 0, a: 1, r: 0, c: ["#221e1b", "#ffffff", "#f6f0e7"] }], 0.3, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_PAPER] = sprite[SPRITE.INV_PAPER]; sprite[SPRITE.INV_AMETHYST] = create_craft_button(1, [{ f: create_amethyst, x: -5, y: -5, a: 1, r: 0, c: ["#1d051e", "#c27add", "#cd98e5"] }], 0.31, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.SAND] = create_craft_button(1, [{ f: create_sand, x: 0, y: 0, a: 1, r: 0, c: ["#D7C393", "#a48c6c"] }], 0.22, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.ICE] = create_craft_button(1, [{ f: create_ice, x: 0, y: 0, a: 1, r: 0, c: ["#93CBCE", "#E9F6F6"] }], 0.3, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.GROUND] = create_craft_button(1, [{ f: create_sand, x: 0, y: 0, a: 1, r: 0, c: ["#866432", "#6b4f25"] }], 0.22, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.BUCKET_FULL] = create_craft_button(1, [{ f: create_bucket_full, x: 3, y: 2, a: 1, r: 0, c: ["#1e2021", "#674C2A", "#4C3B19", "#2f2211", "#785931", "#1678a2"] }], 0.22, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[ItemType.BUCKET_EMPTY] = create_craft_button(1, [{ f: create_bucket_empty, x: 3, y: 2, a: 1, r: 0, c: ["#1e2021", "#674C2A", "#4C3B19", "#2f2211", "#785931", "#1678a2"] }], 0.22, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_BUCKET_FULL] = sprite[ItemType.BUCKET_FULL]; sprite[SPRITE.CRAFT_BUCKET_EMPTY] = sprite[ItemType.BUCKET_EMPTY]; sprite[SPRITE.INV_WELL] = create_craft_button(1, [{ f: create_well, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#717273", "#606162", "#a09f9f", "#878787", "#454545"] }], 0.1, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_WELL] = sprite[SPRITE.INV_WELL]; sprite[SPRITE.INV_BOTTLE_FULL] = create_craft_button(1, [{ f: create_bottle, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#C6AF81", "#C98435", "#B26F31", "#53A4D5", "#388AC7", "#C1C0C0", "#EAEAEA"] }], 0.18, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_BOTTLE_EMPTY] = create_craft_button(1, [{ f: create_bottle_full, x: 0, y: 0, a: 1, r: window.Math.PI / 5, c: ["#C6AF81", "#C98435", "#B26F31", "#53A4D5", "#388AC7", "#C1C0C0", "#EAEAEA"] }], 0.18, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_BOTTLE_FULL] = sprite[SPRITE.INV_BOTTLE_FULL]; sprite[SPRITE.CRAFT_BOTTLE_EMPTY] = sprite[SPRITE.INV_BOTTLE_EMPTY]; sprite[SPRITE.INV_COOKIE] = create_craft_button(1, [{ f: create_cookie, x: 0, y: 0, a: 1, r: 0, c: ["#eedacc", "#dfbda7", "#dab094", "#63391a", "#523124" /*"#C0995F","#906f3f", "#B68947", "#734fc1", "#6945b6"*/] }], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_COOKIE] = sprite[SPRITE.INV_COOKIE]; sprite[ItemType.CANDY] = create_craft_button(1, [{ f: create_candy, x: 0, y: 0, a: 1, r: 0, c: ["#1a1011", "#e29c2b", "#b76413", "#d6c418", "#e0bf32", "#b78a1a", "#aa1a17", "#cc9f2f", "#cc741d", "#b51524", "#bc1522", "#991922", "#a01ed5", "#d51e81"] }], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_FERRERO] = create_craft_button(1, [{ f: create_ferrero_rocher, x: 0, y: 0, a: 1, r: 0, c: ["#1a1011", "#693c2a", "#54311f", "#9f7a3d", "#492d1d", "#dbb175", "#54311f", "#9f7a3d", "#604720"] }], 0.6, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[ItemType.BREAD] = create_craft_button(1, [{ f: create_bread, x: 0, y: -2, a: 1, r: 0, c: ["#1d051e", "#bf8d51", "#7d5133", "#e8d6bf", "#e0c8a9", "#ab7a3f"] }], 0.17, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_BREAD] = sprite[ItemType.BREAD]; sprite[SPRITE.INV_FOODFISH] = create_craft_button(1, [{ f: create_fishfood, x: -3, y: -5, a: 1, r: 0, c: ["#1d051e", "#63767c", "#424f51", "#6c8288", "#536468", "#202020", "#ffffff", "#806f60", "#514942", "#756557"] }], 0.23, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.INV_FOODFISH_COOKED] = create_craft_button(1, [{ f: create_fishfood_cooked, x: 0, y: 0, a: 1, r: 0, c: ["#1d051e", "#42261A", "#281818"] }], 0.23, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_FOODFISH_COOKED] = sprite[SPRITE.INV_FOODFISH_COOKED]; sprite[SPRITE.INV_DIVING_MASK] = create_craft_button(1, [{ f: create_divingmask, x: -3, y: 0, a: 1, r: 0, c: ["#1e2021", "#65A8B7", "#2E85A0", "#14275B", "#081826", "#1A3163", "#0C1944", "#89C4CE", "#2E85A0"] }], 0.2, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_DIVING_MASK] = sprite[SPRITE.INV_DIVING_MASK]; sprite[SPRITE.INV_SCALES] = create_craft_button(1, [{ f: create_scales, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#961B1B", "#702727", "#C43B3B"] }], 0.15, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_SUPER_DIVING_SUIT] = create_craft_button(1, [{ f: create_superdivingsuit, x: 0, y: 0, a: 1, r: 0, c: ["#F0D200", "#B09A00", "#79359E", "#652D8E", "#1e2021"] }], 0.3, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.5); sprite[SPRITE.CRAFT_SUPER_DIVING_SUIT] = sprite[SPRITE.INV_SUPER_DIVING_SUIT]; sprite[SPRITE.INV_PLOT] = create_craft_button(1, [{ f: create_plot, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#352E1E", "#4C3B19", "#574122"] }], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_PLOT] = sprite[SPRITE.INV_PLOT]; sprite[SPRITE.INV_GARLAND] = create_craft_button(1, [{ f: create_garland_inv, x: -5, y: -5, a: 1, r: 0, c: ["#e2d63b", "#ee71a9", "#42b672"] }], 1, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CHEST_GARLAND] = sprite[SPRITE.INV_GARLAND]; sprite[SPRITE.INV_BRIDGE] = create_craft_button(1, [{ f: create_bridge, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#332715", "#4C3B19", "#574122"] }], 0.5, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_BRIDGE] = sprite[SPRITE.INV_BRIDGE]; sprite[SPRITE.INV_ROOF] = create_craft_button(1, [{ f: create_roof, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#352618", "#402b18", "#4c3b19", "#574122", "#52391e"] }], 0.3, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_ROOF] = sprite[SPRITE.INV_ROOF]; sprite[SPRITE.INV_WATERING_CAN_FULL] = create_craft_button(1, [{ f: create_watering_can, x: -1, y: 0, a: 1, r: -window.Math.PI / 5, c: ["#1e2021", "#674C2A", "#4C3B19", "#594225", "#1678a2"] }], 0.4, ["#35b1b5", "#46c2c9", "#33b4e4"] /*["#f09940", "#f5a350", "#e08a32"]*/, 0.7); sprite[SPRITE.CRAFT_WATERING_CAN_FULL] = sprite[SPRITE.INV_WATERING_CAN_FULL]; sprite[SPRITE.INV_WATERING_CAN] = create_craft_button(1, [{ f: create_watering_can, x: -1, y: 0, a: 1, r: -window.Math.PI / 5, c: ["#1e2021", "#674C2A", "#4C3B19", "#594225", "#3F2D18", "#2D2112"] }], 0.4, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CRAFT_WATERING_CAN] = sprite[SPRITE.INV_WATERING_CAN]; sprite[SPRITE.INV_FLOUR] = create_craft_button(1, [{ f: create_flour, x: 0, y: 0, a: 1, r: 0, c: ["#B3AA8E", "#817961", "#EBEAE2", "#E0DFD8"] }], 0.25, ["#2b5c48", "#2b5c48", "#2b5c48"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.INV_CRAB_STICK] = create_craft_button(1, [{ f: create_crab_stick, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#ed5f4f", "#ce4545", "#ffffff", "#e2dad7"] }], 0.2, ["#3ba578", "#4eb687", "#3da34d"] /*["#5c572b", "#5c572b", "#5c572b"]*/, 0.5); sprite[SPRITE.CHEST_CRAB_STICK] = sprite[SPRITE.INV_CRAB_STICK]; sprite[SPRITE.INV_CAKE] = create_craft_button(1, [{ f: create_cake, x: 0, y: 0, a: 1, r: 0, c: ["#1e2021", "#63391a", "#523124", "#d2c4b9", "#c1aca2", "#d8cbc2", "#c8b5ac", "#ac222a", "#e6636a" /*"#1e2021", "#b18849", "#866035", "#d2c4b9", "#c1aca2", "#d8cbc2", "#c8b5ac", "#844b87", "#c296c5"*/] }], 0.25, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_CAKE] = sprite[SPRITE.INV_CAKE]; sprite[ItemType.SANDWICH] = create_craft_button(1, [{ f: create_SANDWICH, x: -2, y: -8, a: 1, r: 0, c: ["#dfd6bc", "#7b5139", "#bf8d50", "#834e49", "#602820", "#d7ccaa"] }], 0.25, ["#3ba578", "#4eb687", "#3da34d"] /*["#a49a3b", "#c7ae44", "#b69e39"]*/, 0.5); sprite[SPRITE.CRAFT_SANDWICH] = sprite[ItemType.SANDWICH]; /* LAVA BIOME */ sprite[SPRITE.INV_LAVA_SWORD] = []; sprite[SPRITE.INV_LAVA_SWORD][0] = IMAGES.INV_LAVA_SWORD_OUT; sprite[SPRITE.INV_LAVA_SWORD][1] = IMAGES.INV_LAVA_SWORD_IN; sprite[SPRITE.INV_LAVA_SWORD][2] = IMAGES.INV_LAVA_SWORD_CLICK; sprite[SPRITE.CRAFT_LAVA_SWORD] = sprite[SPRITE.INV_LAVA_SWORD]; sprite[SPRITE.CHEST_LAVA_SWORD] = sprite[SPRITE.INV_LAVA_SWORD]; sprite[SPRITE.INV_LAVA_SPEAR] = []; sprite[SPRITE.INV_LAVA_SPEAR][0] = IMAGES.INV_LAVA_SPEAR_OUT; sprite[SPRITE.INV_LAVA_SPEAR][1] = IMAGES.INV_LAVA_SPEAR_IN; sprite[SPRITE.INV_LAVA_SPEAR][2] = IMAGES.INV_LAVA_SPEAR_CLICK; sprite[SPRITE.CRAFT_LAVA_SPEAR] = sprite[SPRITE.INV_LAVA_SPEAR]; sprite[SPRITE.CHEST_LAVA_SPEAR] = sprite[SPRITE.INV_LAVA_SPEAR]; sprite[SPRITE.CRAFT_REIDITE_SWORD] = sprite[SPRITE.INV_REIDITE_SWORD]; sprite[SPRITE.CHEST_REIDITE_SWORD] = sprite[SPRITE.INV_REIDITE_SWORD]; sprite[SPRITE.INV_REIDITE_SWORD] = []; sprite[SPRITE.INV_REIDITE_SWORD][0] = IMAGES.INV_REIDITE_SWORD_OUT; sprite[SPRITE.INV_REIDITE_SWORD][1] = IMAGES.INV_REIDITE_SWORD_IN; sprite[SPRITE.INV_REIDITE_SWORD][2] = IMAGES.INV_REIDITE_SWORD_CLICK; sprite[SPRITE.CRAFT_REIDITE_SWORD] = sprite[SPRITE.INV_REIDITE_SWORD]; sprite[SPRITE.CHEST_REIDITE_SWORD] = sprite[SPRITE.INV_REIDITE_SWORD]; sprite[SPRITE.INV_REIDITE_SPEAR] = []; sprite[SPRITE.INV_REIDITE_SPEAR][0] = IMAGES.INV_REIDITE_SPEAR_OUT; sprite[SPRITE.INV_REIDITE_SPEAR][1] = IMAGES.INV_REIDITE_SPEAR_IN; sprite[SPRITE.INV_REIDITE_SPEAR][2] = IMAGES.INV_REIDITE_SPEAR_CLICK; sprite[SPRITE.CRAFT_REIDITE_SPEAR] = sprite[SPRITE.INV_REIDITE_SPEAR]; sprite[SPRITE.CHEST_REIDITE_SPEAR] = sprite[SPRITE.INV_REIDITE_SPEAR]; sprite[SPRITE.INV_DIAMOND_PROTECTION] = []; sprite[SPRITE.INV_DIAMOND_PROTECTION][0] = IMAGES.INV_DIAMOND_PROTECTION_OUT; sprite[SPRITE.INV_DIAMOND_PROTECTION][1] = IMAGES.INV_DIAMOND_PROTECTION_IN; sprite[SPRITE.INV_DIAMOND_PROTECTION][2] = IMAGES.INV_DIAMOND_PROTECTION_CLICK; sprite[SPRITE.CRAFT_DIAMOND_PROTECTION] = sprite[SPRITE.INV_DIAMOND_PROTECTION]; sprite[SPRITE.CHEST_DIAMOND_PROTECTION] = sprite[SPRITE.INV_DIAMOND_PROTECTION]; sprite[SPRITE.INV_AMETHYST_PROTECTION] = []; sprite[SPRITE.INV_AMETHYST_PROTECTION][0] = IMAGES.INV_AMETHYST_PROTECTION_OUT; sprite[SPRITE.INV_AMETHYST_PROTECTION][1] = IMAGES.INV_AMETHYST_PROTECTION_IN; sprite[SPRITE.INV_AMETHYST_PROTECTION][2] = IMAGES.INV_AMETHYST_PROTECTION_CLICK; sprite[SPRITE.CRAFT_AMETHYST_PROTECTION] = sprite[SPRITE.INV_AMETHYST_PROTECTION]; sprite[SPRITE.CHEST_AMETHYST_PROTECTION] = sprite[SPRITE.INV_AMETHYST_PROTECTION]; sprite[SPRITE.INV_REIDITE_PROTECTION] = []; sprite[SPRITE.INV_REIDITE_PROTECTION][0] = IMAGES.INV_REIDITE_PROTECTION_OUT; sprite[SPRITE.INV_REIDITE_PROTECTION][1] = IMAGES.INV_REIDITE_PROTECTION_IN; sprite[SPRITE.INV_REIDITE_PROTECTION][2] = IMAGES.INV_REIDITE_PROTECTION_CLICK; sprite[SPRITE.CRAFT_REIDITE_PROTECTION] = sprite[SPRITE.INV_REIDITE_PROTECTION]; sprite[SPRITE.CHEST_REIDITE_PROTECTION] = sprite[SPRITE.INV_REIDITE_PROTECTION]; sprite[SPRITE.INV_REIDITE_HELMET] = []; sprite[SPRITE.INV_REIDITE_HELMET][0] = IMAGES.INV_REIDITE_HELMET_OUT; sprite[SPRITE.INV_REIDITE_HELMET][1] = IMAGES.INV_REIDITE_HELMET_IN; sprite[SPRITE.INV_REIDITE_HELMET][2] = IMAGES.INV_REIDITE_HELMET_CLICK; sprite[SPRITE.CRAFT_REIDITE_HELMET] = sprite[SPRITE.INV_REIDITE_HELMET]; sprite[SPRITE.CHEST_REIDITE_HELMET] = sprite[SPRITE.INV_REIDITE_HELMET]; sprite[SPRITE.INV_LAVA_HELMET] = []; sprite[SPRITE.INV_LAVA_HELMET][0] = IMAGES.INV_LAVA_HELMET_OUT; sprite[SPRITE.INV_LAVA_HELMET][1] = IMAGES.INV_LAVA_HELMET_IN; sprite[SPRITE.INV_LAVA_HELMET][2] = IMAGES.INV_LAVA_HELMET_CLICK; sprite[SPRITE.CRAFT_LAVA_HELMET] = sprite[SPRITE.INV_LAVA_HELMET]; sprite[SPRITE.CHEST_LAVA_HELMET] = sprite[SPRITE.INV_LAVA_HELMET]; sprite[SPRITE.INV_FIREFLY] = []; sprite[SPRITE.INV_FIREFLY][0] = IMAGES.INV_FIREFLY_OUT; sprite[SPRITE.INV_FIREFLY][1] = IMAGES.INV_FIREFLY_IN; sprite[SPRITE.INV_FIREFLY][2] = IMAGES.INV_FIREFLY_CLICK; sprite[SPRITE.CHEST_FIREFLY] = sprite[SPRITE.INV_FIREFLY]; sprite[SPRITE.INV_WITCH] = []; sprite[SPRITE.INV_WITCH][0] = IMAGES.INV_WITCH_OUT; sprite[SPRITE.INV_WITCH][1] = IMAGES.INV_WITCH_IN; sprite[SPRITE.INV_WITCH][2] = IMAGES.INV_WITCH_CLICK; sprite[SPRITE.CRAFT_WITCH] = sprite[SPRITE.INV_WITCH]; sprite[SPRITE.CHEST_WITCH] = sprite[SPRITE.INV_WITCH]; sprite[SPRITE.INV_NIMBUS] = []; sprite[SPRITE.INV_NIMBUS][0] = IMAGES.INV_NIMBUS_OUT; sprite[SPRITE.INV_NIMBUS][1] = IMAGES.INV_NIMBUS_IN; sprite[SPRITE.INV_NIMBUS][2] = IMAGES.INV_NIMBUS_CLICK; sprite[SPRITE.CRAFT_NIMBUS] = sprite[SPRITE.INV_NIMBUS]; sprite[SPRITE.CHEST_NIMBUS] = sprite[SPRITE.INV_NIMBUS]; sprite[SPRITE.INV_REIDITE] = []; sprite[SPRITE.INV_REIDITE][0] = IMAGES.INV_REIDITE_OUT; sprite[SPRITE.INV_REIDITE][1] = IMAGES.INV_REIDITE_IN; sprite[SPRITE.INV_REIDITE][2] = IMAGES.INV_REIDITE_CLICK; sprite[SPRITE.CHEST_REIDITE] = sprite[SPRITE.INV_REIDITE]; sprite[SPRITE.INV_FLAME] = []; sprite[SPRITE.INV_FLAME][0] = IMAGES.INV_FLAME_OUT; sprite[SPRITE.INV_FLAME][1] = IMAGES.INV_FLAME_IN; sprite[SPRITE.INV_FLAME][2] = IMAGES.INV_FLAME_CLICK; sprite[SPRITE.CHEST_FLAME] = sprite[SPRITE.INV_FLAME]; /*LAVA BIOME END*/ sprite[SPRITE.CHEST_SHOVEL] = sprite[SPRITE.INV_SHOVEL]; sprite[SPRITE.CHEST_SHOVEL_GOLD] = sprite[SPRITE.INV_SHOVEL_GOLD]; sprite[SPRITE.CHEST_SHOVEL_DIAMOND] = sprite[SPRITE.INV_SHOVEL_DIAMOND]; sprite[SPRITE.CHEST_SHOVEL_AMETHYST] = sprite[SPRITE.INV_SHOVEL_AMETHYST]; sprite[SPRITE.CHEST_SHOVEL_REIDITE] = sprite[SPRITE.INV_SHOVEL_REIDITE]; sprite[SPRITE.CHEST_SEED] = sprite[SPRITE.INV_SEED]; sprite[SPRITE.CHEST_WHEAT_SEED] = sprite[SPRITE.INV_WHEAT_SEED]; sprite[SPRITE.CHEST_WINDMILL] = sprite[SPRITE.INV_WINDMILL]; sprite[SPRITE.CHEST_WILD_WHEAT] = sprite[SPRITE.INV_WILD_WHEAT]; sprite[SPRITE.CHEST_FIRE] = sprite[SPRITE.INV_FIRE]; sprite[SPRITE.CHEST_DRAGON_ORB] = sprite[SPRITE.INV_DRAGON_ORB]; sprite[SPRITE.CHEST_DRAGON_CUBE] = sprite[SPRITE.INV_DRAGON_CUBE]; sprite[SPRITE.CHEST_LAVA_ORB] = sprite[SPRITE.INV_LAVA_ORB]; sprite[SPRITE.CHEST_LAVA_CUBE] = sprite[SPRITE.INV_LAVA_CUBE]; sprite[SPRITE.CHEST_BIG_FIRE] = sprite[SPRITE.INV_BIG_FIRE]; //Christmas sprite[SPRITE.CHEST_SUGAR_CAN] = sprite[SPRITE.INV_SUGAR_CAN]; sprite[SPRITE.CHEST_PIRATE_SWORD] = sprite[SPRITE.INV_PIRATE_SWORD]; sprite[SPRITE.CHEST_SWORD_WOOD] = sprite[SPRITE.INV_SWORD_WOOD]; sprite[SPRITE.CHEST_SWORD] = sprite[SPRITE.INV_SWORD]; sprite[SPRITE.CHEST_SWORD_GOLD] = sprite[SPRITE.INV_SWORD_GOLD]; sprite[SPRITE.CHEST_SWORD_DIAMOND] = sprite[SPRITE.INV_SWORD_DIAMOND]; sprite[SPRITE.CHEST_SWORD_AMETHYST] = sprite[SPRITE.INV_SWORD_AMETHYST]; sprite[SPRITE.CHEST_PICK_WOOD] = sprite[SPRITE.INV_PICK_WOOD]; sprite[SPRITE.CHEST_PICK] = sprite[SPRITE.INV_PICK]; sprite[SPRITE.CHEST_PICK_GOLD] = sprite[SPRITE.INV_PICK_GOLD]; sprite[SPRITE.CHEST_PICK_DIAMOND] = sprite[SPRITE.INV_PICK_DIAMOND]; sprite[SPRITE.CHEST_PICK_AMETHYST] = sprite[SPRITE.INV_PICK_AMETHYST]; sprite[SPRITE.CHEST_STONE] = sprite[SPRITE.INV_STONE]; sprite[SPRITE.CHEST_GOLD] = sprite[SPRITE.INV_GOLD]; sprite[SPRITE.CHEST_DIAMOND] = sprite[SPRITE.INV_DIAMOND]; sprite[SPRITE.CHEST_WOOD] = sprite[SPRITE.INV_WOOD]; sprite[SPRITE.CHEST_PLANT] = sprite[SPRITE.INV_PLANT]; sprite[SPRITE.CHEST_WORKBENCH] = sprite[SPRITE.INV_WORK]; sprite[SPRITE.CHEST_STONE_WALL] = sprite[SPRITE.INV_STONE_WALL]; sprite[SPRITE.CHEST_DIAMOND_WALL] = sprite[SPRITE.INV_DIAMOND_WALL]; sprite[SPRITE.CHEST_GOLD_WALL] = sprite[SPRITE.INV_GOLD_WALL]; sprite[SPRITE.CHEST_AMETHYST_WALL] = sprite[SPRITE.INV_AMETHYST_WALL]; sprite[SPRITE.CHEST_WALL] = sprite[SPRITE.INV_WALL]; sprite[SPRITE.CHEST_SPIKE] = sprite[SPRITE.INV_SPIKE]; sprite[SPRITE.CHEST_MEAT] = sprite[SPRITE.INV_MEAT]; sprite[SPRITE.CHEST_COOKED_MEAT] = sprite[SPRITE.INV_COOKED_MEAT]; sprite[SPRITE.CHEST_CORD] = sprite[SPRITE.INV_CORD]; sprite[SPRITE.CHEST_BLUE_CORD] = sprite[SPRITE.INV_BLUE_CORD]; sprite[SPRITE.CHEST_BANDAGE] = sprite[SPRITE.INV_BANDAGE]; sprite[SPRITE.CHEST_LOCK] = sprite[SPRITE.INV_LOCK]; sprite[SPRITE.CHEST_LOCKPICK] = sprite[SPRITE.INV_LOCKPICK]; sprite[SPRITE.CHEST_RESURRECTION] = sprite[SPRITE.INV_RESURRECTION]; sprite[SPRITE.CHEST_DRAGON_HEART] = sprite[SPRITE.INV_DRAGON_HEART]; sprite[SPRITE.CHEST_LAVA_HEART] = sprite[SPRITE.INV_LAVA_HEART]; sprite[SPRITE.CHEST_DRAGON_SWORD] = sprite[SPRITE.INV_DRAGON_SWORD]; sprite[SPRITE.CHEST_TOTEM] = sprite[SPRITE.INV_TOTEM]; sprite[SPRITE.CHEST_DOOR_WOOD_CLOSE] = sprite[SPRITE.INV_DOOR_WOOD_CLOSE]; sprite[SPRITE.CHEST_CHEST] = sprite[SPRITE.INV_CHEST]; sprite[SPRITE.CHEST_SLOT] = CTI(create_chest_slot(0.8, true, ["#4c3b19", "#c4a23a", "#c4a23a", "#c4a23a"])); sprite[SPRITE.CHEST_PLUS] = create_craft_button(0.5, [{ f: create_plus_chest, x: 0, y: 2, a: 1, r: 0, c: ["#ffffff"] }], 0.16, ["#c4a23a", "#d0ad41", "#b89733"], 0.9); sprite[SPRITE.CHEST_STONE_SPIKE] = sprite[SPRITE.INV_STONE_SPIKE]; sprite[SPRITE.CHEST_GOLD_SPIKE] = sprite[SPRITE.INV_GOLD_SPIKE]; sprite[SPRITE.CHEST_DIAMOND_SPIKE] = sprite[SPRITE.INV_DIAMOND_SPIKE]; sprite[SPRITE.CHEST_AMETHYST_SPIKE] = sprite[SPRITE.INV_AMETHYST_SPIKE]; sprite[SPRITE.CHEST_BAG] = sprite[SPRITE.INV_BAG]; sprite[SPRITE.CHEST_SPECIAL_FUR] = sprite[ItemType.WINTER_HOOD_FUR]; sprite[SPRITE.CHEST_SPECIAL_FUR_2] = sprite[ItemType.WINTER_PEASANT_FUR]; sprite[SPRITE.CHEST_FUR] = sprite[SPRITE.INV_FUR]; sprite[SPRITE.CHEST_KRAKEN_SKIN] = sprite[SPRITE.INV_KRAKEN_SKIN]; sprite[SPRITE.CHEST_FUR_WOLF] = sprite[SPRITE.INV_FUR_WOLF]; sprite[SPRITE.CHEST_FUR_BOAR] = sprite[SPRITE.INV_FUR_BOAR]; sprite[SPRITE.CHEST_FUR_WINTER] = sprite[SPRITE.INV_FUR_WINTER]; sprite[SPRITE.CHEST_EARMUFFS] = sprite[SPRITE.INV_EARMUFFS]; sprite[SPRITE.CHEST_CAP_SCARF] = sprite[SPRITE.INV_CAP_SCARF]; sprite[SPRITE.CHEST_DOOR_STONE_CLOSE] = sprite[SPRITE.INV_DOOR_STONE_CLOSE]; sprite[SPRITE.CHEST_DOOR_GOLD_CLOSE] = sprite[SPRITE.INV_DOOR_GOLD_CLOSE]; sprite[SPRITE.CHEST_DOOR_DIAMOND_CLOSE] = sprite[SPRITE.INV_DOOR_DIAMOND_CLOSE]; sprite[SPRITE.CHEST_DOOR_AMETHYST_CLOSE] = sprite[SPRITE.INV_DOOR_AMETHYST_CLOSE]; sprite[SPRITE.CHEST_COAT] = sprite[SPRITE.INV_COAT]; sprite[SPRITE.CHEST_WOOD_SPEAR] = sprite[SPRITE.INV_WOOD_SPEAR]; sprite[SPRITE.CHEST_SPEAR] = sprite[SPRITE.INV_SPEAR]; sprite[SPRITE.CHEST_GOLD_SPEAR] = sprite[SPRITE.INV_GOLD_SPEAR]; sprite[SPRITE.CHEST_DIAMOND_SPEAR] = sprite[SPRITE.INV_DIAMOND_SPEAR]; sprite[SPRITE.CHEST_AMETHYST_SPEAR] = sprite[SPRITE.INV_AMETHYST_SPEAR]; sprite[SPRITE.CHEST_DRAGON_SPEAR] = sprite[SPRITE.INV_DRAGON_SPEAR]; sprite[SPRITE.CHEST_SUPER_HAMMER] = sprite[SPRITE.INV_SUPER_HAMMER]; sprite[SPRITE.CHEST_SPANNER] = sprite[SPRITE.INV_SPANNER]; sprite[SPRITE.CHEST_HAMMER] = sprite[SPRITE.INV_HAMMER]; sprite[SPRITE.CHEST_HAMMER_GOLD] = sprite[SPRITE.INV_HAMMER_GOLD]; sprite[SPRITE.CHEST_HAMMER_DIAMOND] = sprite[SPRITE.INV_HAMMER_DIAMOND]; sprite[SPRITE.CHEST_HAMMER_AMETHYST] = sprite[SPRITE.INV_HAMMER_AMETHYST]; sprite[SPRITE.CHEST_FURNACE] = sprite[SPRITE.INV_FURNACE]; sprite[SPRITE.CHEST_BREAD_OVEN] = sprite[SPRITE.INV_BREAD_OVEN]; sprite[SPRITE.CHEST_EXPLORER_HAT] = sprite[SPRITE.INV_EXPLORER_HAT]; sprite[SPRITE.CHEST_STONE_HELMET] = sprite[SPRITE.INV_STONE_HELMET]; sprite[SPRITE.CHEST_GOLD_HELMET] = sprite[SPRITE.INV_GOLD_HELMET]; sprite[SPRITE.CHEST_DIAMOND_HELMET] = sprite[SPRITE.INV_DIAMOND_HELMET]; sprite[SPRITE.CHEST_AMETHYST_HELMET] = sprite[SPRITE.INV_AMETHYST_HELMET]; sprite[SPRITE.CHEST_DRAGON_HELMET] = sprite[SPRITE.INV_DRAGON_HELMET]; sprite[SPRITE.CHEST_BOOK] = sprite[SPRITE.INV_BOOK]; sprite[SPRITE.CHEST_PAPER] = sprite[SPRITE.INV_PAPER]; sprite[SPRITE.CHEST_AMETHYST] = sprite[SPRITE.INV_AMETHYST]; sprite[SPRITE.CHEST_BRIDGE] = sprite[SPRITE.INV_BRIDGE]; sprite[SPRITE.CHEST_ROOF] = sprite[SPRITE.INV_ROOF]; sprite[SPRITE.CHEST_PLOT] = sprite[SPRITE.INV_PLOT]; sprite[SPRITE.CHEST_SAND] = sprite[ItemType.SAND]; sprite[SPRITE.CHEST_BREAD] = sprite[ItemType.BREAD]; sprite[SPRITE.CHEST_ICE] = sprite[ItemType.ICE]; sprite[SPRITE.CHEST_GROUND] = sprite[ItemType.GROUND]; sprite[SPRITE.CHEST_BOTTLE_FULL] = sprite[SPRITE.INV_BOTTLE_FULL]; sprite[SPRITE.CHEST_BOTTLE_EMPTY] = sprite[SPRITE.INV_BOTTLE_EMPTY]; sprite[SPRITE.CHEST_WATERING_CAN] = sprite[SPRITE.INV_WATERING_CAN]; sprite[SPRITE.CHEST_FLOUR] = sprite[SPRITE.INV_FLOUR]; sprite[SPRITE.CHEST_COOKIE] = sprite[SPRITE.INV_COOKIE]; //Christmas sprite[SPRITE.CHEST_CANDY] = sprite[ItemType.CANDY]; sprite[SPRITE.CHEST_FERRERO] = sprite[SPRITE.INV_FERRERO]; sprite[SPRITE.CHEST_SUPER_DIVING_SUIT] = sprite[SPRITE.INV_SUPER_DIVING_SUIT]; sprite[SPRITE.CHEST_DIVING_MASK] = sprite[SPRITE.INV_DIVING_MASK]; sprite[SPRITE.CHEST_WATERING_CAN_FULL] = sprite[SPRITE.INV_WATERING_CAN_FULL]; sprite[SPRITE.CHEST_CAKE] = sprite[SPRITE.INV_CAKE]; sprite[SPRITE.CHEST_CRAB_STICK] = sprite[SPRITE.INV_CRAB_STICK]; sprite[SPRITE.CHEST_FOODFISH] = sprite[SPRITE.INV_FOODFISH]; sprite[SPRITE.CHEST_FOODFISH_COOKED] = sprite[SPRITE.INV_FOODFISH_COOKED]; sprite[SPRITE.CHEST_SCALES] = sprite[SPRITE.INV_SCALES]; sprite[SPRITE.CHEST_SANDWICH] = sprite[ItemType.SANDWICH]; sprite[SPRITE.CHEST_CROWN_GREEN] = sprite[SPRITE.INV_CROWN_GREEN]; sprite[SPRITE.CHEST_GEMME_GREEN] = sprite[ItemType.GEM_GREEN]; sprite[SPRITE.CHEST_CROWN_ORANGE] = sprite[SPRITE.INV_CROWN_ORANGE]; sprite[SPRITE.CHEST_GEMME_ORANGE] = sprite[ItemType.GEM_ORANGE]; sprite[SPRITE.CHEST_CROWN_BLUE] = sprite[SPRITE.INV_CROWN_BLUE]; sprite[SPRITE.CHEST_GEMME_BLUE] = sprite[ItemType.GEM_BLUE]; sprite[SPRITE.CHEST_HOOD] = sprite[SPRITE.INV_HOOD]; sprite[SPRITE.CHEST_PEASANT] = sprite[SPRITE.INV_PEASANT]; sprite[SPRITE.CHEST_WINTER_PEASANT] = sprite[SPRITE.INV_WINTER_PEASANT]; sprite[SPRITE.CHEST_WINTER_HOOD] = sprite[SPRITE.INV_WINTER_HOOD]; sprite[SPRITE.CHEST_BUCKET_EMPTY] = sprite[ItemType.BUCKET_EMPTY]; sprite[SPRITE.CHEST_BUCKET_FULL] = sprite[ItemType.BUCKET_FULL]; sprite[SPRITE.CHEST_WELL] = sprite[SPRITE.INV_WELL]; sprite[SPRITE.CHEST_PUMPKIN_SEED] = sprite[SPRITE.INV_PUMPKIN_SEED]; sprite[SPRITE.CHEST_GARLIC_SEED] = sprite[SPRITE.INV_GARLIC_SEED]; sprite[SPRITE.CHEST_THORNBUSH_SEED] = sprite[SPRITE.INV_THORNBUSH_SEED]; sprite[SPRITE.CHEST_WOOD_HELMET] = sprite[SPRITE.INV_WOOD_HELMET]; } /* Draw text informations */ let INFO_BOX = []; let PLAYER_LEVEL = []; function ctxDrawImage(ctx, img, b, c, d, e, f, g, h, i) { if (img.tryLoad === undefined || img.tryLoad() === 1) { if(Xray){ ctx.globalAlpha = 0.6; } if (i !== undefined) ctx.drawImage(img, b, c, window.Math.max(1, d), window.Math.max(1, e), f, g, h, i); else if (e !== undefined) ctx.drawImage(img, b, c, d, e); else ctx.drawImage(img, b, c); } } function draw_info_box() { var box = game.info_box; var inv = box.id; if (box.activated === 1 && box.display === 1) { // Draw info box a first time if (INFO_BOX[inv] === undefined) INFO_BOX[inv] = create_info_box(inv); if (box.craft === 1) ctxDrawImage(ctx, INFO_BOX[inv], box.x, box.y); else { if (box.x - 80 + INFO_BOX[inv].width > canw) ctxDrawImage(ctx, INFO_BOX[inv], canw - INFO_BOX[inv].width - 10, box.y - INFO_BOX[inv].height - 10); else ctxDrawImage(ctx, INFO_BOX[inv], box.x - 80, box.y - INFO_BOX[inv].height - 10); } } } /* Draw slot number */ function draw_slot_number(n, button, push) { var img = sprite[SPRITE.SLOT_NUMBER][n]; var x = button.info.translate.x + 5 * scale; var y = button.info.translate.y + 5 * scale; if (button.info.state == BUTTON_CLICK || push) y += scale * 5; ctxDrawImage(ctx, img, x, y); } /* Draw amount of item on button */ function draw_amount(n, button) { if (!sprite[SPRITE.COUNTER][n]) sprite[SPRITE.COUNTER][n] = create_text(scale, "x" + n, 17, "#FFF"); var img = sprite[SPRITE.COUNTER][n]; var x = button.info.translate.x + button.info.img[0].width - img.width - 14 * scale; var y = button.info.translate.y + button.info.img[0].height - img.height - 19 * scale; if (button.info.state == BUTTON_CLICK) y += scale * 5; ctxDrawImage(ctx, img, x, y); } /* Draw well inventory */ function draw_well_inventory() { if (user.chest.open || user.furnace.open || user.windmill.open || user.bread_oven.open || user.extractor.open) return; /* Per default don't show a well */ user.well.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_WELL; if (!p) return; for (var i = 0; i < world.units[ITEMS.WELL].length; i++) { var well = world.units[ITEMS.WELL][i]; var m = Utils.dist(well, p); if (m < min) { min = m; user.well.open = true; user.well.pid = well.pid; } } } /* Draw bread_oven inventory */ function draw_bread_oven_inventory() { if (user.chest.open || user.furnace.open || user.windmill.open || user.extractor.open) return; /* Per default don't show a bread_oven */ user.bread_oven.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_BREAD_OVEN; if (!p) return; for (var i = 0; i < world.units[ITEMS.BREAD_OVEN].length; i++) { var bread_oven = world.units[ITEMS.BREAD_OVEN][i]; var m = Utils.dist(bread_oven, p); if (m < min) { min = m; user.bread_oven.open = true; user.bread_oven.amount_wood = bread_oven.info & 0x1f; user.bread_oven.amount_flour = (bread_oven.info & 0x3e0) >> 5; user.bread_oven.amount_bread = (bread_oven.info & 0x7c00) >> 10; user.bread_oven.pid = bread_oven.pid; } } /* Draw bread oven button */ if (min < WORLD.DIST_BREAD_OVEN) { var img = sprite[SPRITE.BREAD_OVEN_UI]; var button = game.bread_oven_wood_button; var x = button.info.translate.x - 32; ctxDrawImage(ctx, img, x, 0); if (user.bread_oven.amount_wood > 0) { button.draw(ctx); var n = user.bread_oven.amount_wood; if (n > 1) draw_amount(n, button); } var button = game.bread_oven_bread_button; if (user.bread_oven.amount_bread > 0) { button.draw(ctx); var n = user.bread_oven.amount_bread; if (n > 1) draw_amount(n, button); } var button = game.bread_oven_flour_button; if (user.bread_oven.amount_flour > 0) { button.draw(ctx); var n = user.bread_oven.amount_flour; if (n > 1) draw_amount(n, button); } } } /* Draw extractor inventory */ function draw_extractor_inventory() { if (user.chest.open || user.furnace.open) return; /* Per default don't show a extractor */ user.extractor.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_EXTRACTOR_MACHINE; if (!p) return; for (var j = 0; j < EXTRACTORS.length; j++) { var type = EXTRACTORS[j][0]; var mineral = EXTRACTORS[j][1]; for (var i = 0; i < world.units[type].length; i++) { var extractor = world.units[type][i]; var m = Utils.dist(extractor, p); if (m < min) { min = m; user.extractor.mineral = mineral; user.extractor.type = type; user.extractor.open = true; user.extractor.amount_wood = extractor.info & 0xff; user.extractor.amount_mineral = (extractor.info & 0xff00) >> 8; user.extractor.pid = extractor.pid; } } } /* Draw extractor button */ if (min < WORLD.DIST_EXTRACTOR_MACHINE) { var img = sprite[SPRITE.EXTRACTOR_CASES]; var button = game.extractor_wood_button; var x = button.info.translate.x - 33; ctxDrawImage(ctx, img, x, 0); if (user.extractor.amount_wood > 0) { button.draw(ctx); var n = user.extractor.amount_wood; if (n > 1) draw_amount(n, button); } switch (user.extractor.mineral) { case ItemType.STONE: var button = game.extractor_stone_button; break; case ItemType.GOLD: var button = game.extractor_gold_button; break; case ItemType.DIAMOND: var button = game.extractor_diamond_button; break; case ItemType.AMETHYST: var button = game.extractor_amethyst_button; break; case ItemType.REIDITE: var button = game.extractor_reidite_button; break; } if (user.extractor.amount_mineral > 0) { button.draw(ctx); var n = user.extractor.amount_mineral; if (n > 1) draw_amount(n, button); } } } /* Draw windmill inventory */ function draw_windmill_inventory() { if (user.chest.open || user.furnace.open) return; /* Per default don't show a windmill */ user.windmill.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_WINDMILL; if (!p) return; for (var i = 0; i < world.units[ITEMS.WINDMILL].length; i++) { var windmill = world.units[ITEMS.WINDMILL][i]; var m = Utils.dist(windmill, p); if (m < min) { min = m; user.windmill.open = true; user.windmill.amount_wheat = windmill.info & 0xff; user.windmill.amount_flour = (windmill.info & 0xff00) >> 8; user.windmill.pid = windmill.pid; } } /* Draw windmill button */ if (min < WORLD.DIST_WINDMILL) { var img = sprite[SPRITE.WINDMILL_CASES]; var button = game.windmill_wheat_button; var x = button.info.translate.x - 33; ctxDrawImage(ctx, img, x, 0); if (user.windmill.amount_wheat > 0) { button.draw(ctx); var n = user.windmill.amount_wheat; if (n > 1) draw_amount(n, button); } var button = game.windmill_flour_button; if (user.windmill.amount_flour > 0) { button.draw(ctx); var n = user.windmill.amount_flour; if (n > 1) draw_amount(n, button); } } } /* Draw furnace inventory */ function draw_furnace_inventory() { if (user.chest.open) return; /* Per default don't show a furnace */ user.furnace.amount = 0; user.furnace.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_FURNACE; if (!p) return; for (var i = 0; i < world.units[ITEMS.FURNACE].length; i++) { var furnace = world.units[ITEMS.FURNACE][i]; var m = Utils.dist(furnace, p); if (m < min) { min = m; user.furnace.open = true; user.furnace.amount = furnace.info; user.furnace.pid = furnace.pid; } } /* Draw furnace button */ if (min < WORLD.DIST_FURNACE) { var img = sprite[SPRITE.FURNACE_SLOT]; var button = game.furnace_button; var x = window.Math.floor(button.info.translate.x + (button.info.img[0].width - img.width) / 2); var y = window.Math.floor(button.info.translate.y + (button.info.img[0].height - img.height) / 2) + 3; ctxDrawImage(ctx, img, x, y); if (user.furnace.amount > 0) { button.draw(ctx); var n = user.furnace.amount; if (n > 1) draw_amount(n, button); } } } /* Draw resurrection button */ function draw_resurrection_inventory() { /* Per default don't show a resurrection button */ user.resurrection.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_RESURRECTION; if (!p) return; for (var i = 0; i < world.units[ITEMS.RESURRECTION].length; i++) { var resurrection = world.units[ITEMS.RESURRECTION][i]; var m = Utils.dist(resurrection, p); if (m < min) { min = m; user.resurrection.open = true; user.resurrection.pid = resurrection.pid; } } /* Draw resurrection button */ if (min < WORLD.DIST_RESURRECTION) game.resurrection.draw(ctx); } /* Draw team buttons */ function draw_team_buttons() { user.totem.id = -1; user.totem.pid = -1; if (user.totem.wait || user.zombie) return; var p = world.fast_units[user.id]; var min = WORLD.DIST_TOTEM; if (p) { for (var i = 0; i < world.units[ITEMS.TOTEM].length; i++) { var totem = world.units[ITEMS.TOTEM][i]; var m = Utils.dist(totem, p); if (m < min) { min = m; user.totem.id = totem.id; user.totem.pid = totem.pid; user.totem.info = totem.info; user.totem.lock = totem.info; } } } /* Clean button state */ var before = game.team_buttons_id; game.team_buttons_id = -1; if (user.totem.pid != -1 && (user.team.length == 0 || user.id == user.totem.pid)) { /* If user want to join the team */ if (user.team.length == 0 && user.totem.info) // It's full or locked (16) game.team_buttons_id = CLIENT.TEAM_FULL; else if (user.team.length == 0) game.team_buttons_id = CLIENT.TEAM_JOIN; /* If the leader want to schedule the team */ else game.team_buttons_id = CLIENT.TEAM_MANAGE; /* Draw leave button, and player is not the leader */ } else if (user.team.length != 0 && user.team[0] != user.id) game.team_buttons_id = CLIENT.TEAM_LEAVE; /* User can see the team */ else if (user.team.length != 0 && user.team[0] == user.id) game.team_buttons_id = CLIENT.TEAM_SHOW; else if (user.team.length != 0) game.team_buttons_id = CLIENT.TEAM_JOIN; /* Finally draw the button */ if (game.team_buttons_id != -1) game.team_buttons[game.team_buttons_id].button.draw(ctx); var style = window.document.getElementById("team_box").style; if (game.team_buttons_id != -1 && game.team_buttons_id != before && style.display == "inline-block") game.team_buttons[game.team_buttons_id].action(); } /* Draw chest inventory */ function draw_chest_inventory() { /* Per default don't show a chest */ user.chest.id = -1; user.chest.lock = false; user.chest.locked = false; user.chest.lockpick = false; user.chest.padlock = false; user.chest.open = false; var p = world.fast_units[user.id]; var min = WORLD.DIST_CHEST; if (!p) return; for (var i = 0; i < world.units[ITEMS.CHEST].length; i++) { var chest = world.units[ITEMS.CHEST][i]; var m = Utils.dist(chest, p); if (m < min) { min = m; user.chest.open = true; user.chest.id = chest.extra; user.chest.amount = chest.info; user.chest.pid = chest.pid; user.chest.locked = chest.lock; user.chest.lock = chest.lock && user.id != chest.pid && !user.in_team(chest.pid) ? true : false; user.chest.padlock = chest.pid === user.id && !user.chest.locked && user.inv.find_item(ItemType.LOCK) != -1 ? true : false; if (user.chest.locked && user.inv.find_item(ItemType.LOCK_PICK) != -1) user.chest.lockpick = true; } } /* Draw chest button */ if (min < WORLD.DIST_CHEST) { var img = sprite[SPRITE.CHEST_SLOT]; var button = game.chest_buttons[ItemType.STONE_SWORD]; var x = window.Math.floor(button.info.translate.x + (button.info.img[0].width - img.width) / 2); var y = window.Math.floor(button.info.translate.y + (button.info.img[0].height - img.height) / 2) + 3; ctxDrawImage(ctx, img, x, y); if (!user.chest.lock || user.chest.pid === user.id) { if (user.chest.id >= 1) { var button = game.chest_buttons[user.chest.id]; button.draw(ctx); var n = user.chest.amount; if (n > 1) draw_amount(n, button); } } if (!user.chest.lock) { if (user.chest.padlock) game.chest_padlock.draw(ctx); } else game.chest_locked.draw(ctx); if (user.chest.lockpick) game.chest_lockpick.draw(ctx); } } /* Draw bigmap */ function draw_bigmap() { if (!user.bigmap) return; ctx.globalAlpha = 0.5; ctx.fillStyle = "#000000"; ctx.fillRect(0, 0, canw, canh); ctx.globalAlpha = 0.8; var img = sprite[SPRITE.BIGMAP][world.time]; var x = canw2 - img.width / 2; var y = canh2 - img.height / 2; ctxDrawImage(ctx, img, x, y); ctx.globalAlpha = 1; /* Draw marker on minimap */ if (game.minimap.marker.x > -1) { ctx.fillStyle = "#660000"; circle(ctx, x + game.minimap.marker.x * 3 * scale, y + game.minimap.marker.y * 3 * scale, scale * 14); ctx.fill(); } /* Draw all players on minimap */ var players = game.minimap.players; for (var i = 0; i < players.length; i++) { var p = players[i]; ctx.fillStyle = !world.time ? "#ff0000" : "#ff0000"; circle(ctx, x + 600 * (p.x / (world.nw * 100)) * scale, y + 600 * (p.y / (world.nh * 100)) * scale, scale * 6); ctx.fill(); } /* Draw player on minimap */ var u = world.fast_units[user.id]; if (u) { ctx.fillStyle = !world.time ? "#e39716" : "#ffffff"; circle(ctx, x + 600 * (u.x / (world.nw * 100)) * scale, y + 600 * (u.y / (world.nh * 100)) * scale, scale * 12); ctx.fill(); } } function draw_reconnect() { if (user.reconnect.enabled) { ctx.globalAlpha = 0.9; ctx.fillStyle = "#000000"; round_rect(ctx, canw2 - 150, canh2 - 90, 300, 180, 15); ctx.fill(); ctx.globalAlpha = 1; var img = sprite[SPRITE.GEAR2]; ctx.save(); user.reconnect.rotate = (user.reconnect.rotate + delta * 2) % (PI2M); ctx.translate(canw / 2, canh / 2 - 25); ctx.rotate(user.reconnect.rotate); ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); var img = sprite[SPRITE.RECONNECT]; ctxDrawImage(ctx, img, (canw - img.width) / 2, (canh - img.height) / 2 + 25); } } /* Draw minimap */ function draw_minimap() { if (user.inv.can_select.length > 0) var minimap = { x: game.minimap.translate.x, y: game.minimap.translate.y - 120 * scale }; else var minimap = { x: game.minimap.translate.x, y: game.minimap.translate.y - 50 * scale }; ctx.globalAlpha = 0.8; var img = sprite[SPRITE.MINIMAP][world.time]; ctxDrawImage(ctx, img, minimap.x, minimap.y); ctx.globalAlpha = 1; /* Draw marker on minimap */ if (game.minimap.marker.x > -1) { ctx.fillStyle = "#660000"; circle(ctx, minimap.x + game.minimap.marker.x * scale, minimap.y + game.minimap.marker.y * scale, scale * 5); ctx.fill(); } var old_scale = scale; /* Draw all players on minimap */ var players = game.minimap.players; for (var i = 0; i < players.length; i++) { var p = players[i]; ctx.fillStyle = "#ff0000"; circle(ctx, minimap.x + 193 * (p.x / (world.nw * 100)) * scale, minimap.y + 193 * (p.y / (world.nh * 100)) * scale, scale * 2); ctx.fill(); } /* Draw player on minimap */ var u = world.fast_units[user.id]; if (u) { ctx.fillStyle = !world.time ? "#e39716" : "#ffffff"; circle(ctx, minimap.x + 193 * (u.x / (world.nw * 100)) * scale, minimap.y + 193 * (u.y / (world.nh * 100)) * scale, scale * 4); ctx.fill(); } scale = old_scale; } var __BANDAGE__ = []; /* Draw status icon notification */ function draw_status() { var y = -8; if (user.auto_feed.enabled) { var img = sprite[SPRITE.AUTO_FEED]; ctxDrawImage(ctx, img, user.auto_feed.translate.x, user.auto_feed.translate.y + y); y += 70; } // Render heal prevented by blizzard icon if (user.blizzard === 1) { var img = sprite[SPRITE.STOP_REGENERATION_BLIZZARD]; ctxDrawImage(ctx, img, user.auto_feed.translate.x, user.auto_feed.translate.y + y); y += 70; // Render heal prevented by gauges icon } else if (user.gauges.cold.x < 0.25 || user.gauges.hunger.x < 0.25 || user.gauges.thirst.x < 0.25 || user.gauges.oxygen.x < 0.25 || user.gauges.warm.x < 0.25) { var img = sprite[SPRITE.STOP_REGENERATION]; ctxDrawImage(ctx, img, user.auto_feed.translate.x, user.auto_feed.translate.y + y); y += 70; } // Render bandage if (user.bandage > 0) { var img = sprite[SPRITE.BANDAGE_ACTIVATED]; ctxDrawImage(ctx, img, user.auto_feed.translate.x, user.auto_feed.translate.y + y); var bandage = __BANDAGE__[user.bandage]; if (bandage === undefined) { bandage = create_text(scale, user.bandage + "", 30, "#FDFDFD", null, null, null, null, null, "#C8BBBF", 6); __BANDAGE__[user.bandage] = bandage; } if (user.bandage < 9) ctxDrawImage(ctx, bandage, user.auto_feed.translate.x - 39, user.auto_feed.translate.y + y + 20); else ctxDrawImage(ctx, bandage, user.auto_feed.translate.x - 46, user.auto_feed.translate.y + y + 20); } } /* Draw leaderboard */ function draw_leaderboard() { var ldb = user.ldb; var game_ldb = game.leaderboard; let color = "#FFF"; if (ldb.update) { ldb.update = false; var ids = ldb.ids; var w = game_ldb.can.width; var h = game_ldb.can.height; var ctx2 = game_ldb.ctx; var players = world.players; /* If player is in ldb */ var in_ldb = false; /* Blit base template leaderboard */ ctx2.clearRect(0, 0, w, h); ctx2.drawImage(game_ldb.img, 0, 0); /* Blit username and score */ for (var i = 0; i < ids.length; i++) { var p = players[ids[i]]; if (world.mode === WORLD.MODE_ZOMBIES && p.skin === WORLD.ZOMBIE_SKIN) continue; /* If player is in leaderboard */ if (ids[i] == user.id) { /* Ok player is in the leaderboard, so do not draw points */ in_ldb = true; if (world.mode === WORLD.MODE_VAMPIRES && p.skin === WORLD.VAMPIRE_SKIN) color = "#FF0000"; else color = "#FFF"; } else { if (world.mode === WORLD.MODE_VAMPIRES && p.skin === WORLD.VAMPIRE_SKIN) color = "#990000"; else color = "#A1BDCD"; } ctx2.drawImage(create_text(scale, "" + (i + 1), 15 * scale, color), 20 * scale, (40 + i * 22) * scale); if (p && !p.ldb_label) p.ldb_label = create_text(scale, p.nickname, 15 * scale, color, undefined, undefined, undefined, undefined, 110 * scale); ctx2.drawImage(p.ldb_label, 39 * scale, (40 + i * 22) * scale); ctx2.drawImage(create_text(scale, Utils.simplify_number(p.score), 15 * scale, color), 156 * scale, (40 + i * 22) * scale); } if (!in_ldb) { ctx2.drawImage(sprite[SPRITE.YOUR_SCORE], 15 * scale, (46 + i * 22) * scale); ctx2.drawImage(create_text(scale, Utils.simplify_number(world.players[user.id].score), 15 * scale, "#FFF"), 100 * scale, (46 + i * 22) * scale); } } ctxDrawImage(ctx, game_ldb.can, game_ldb.translate.x, game_ldb.translate.y); } /* Draw totem delay */ function draw_totem_delay() { var totem = user.totem; if (totem.wait) { var ret = totem.timeout.update(); ctx.save(); var img = sprite[SPRITE.DELAY_TEAM]; var gap = sprite[SPRITE.DELAY_WEAPON].height + 25 * scale; ctx.translate(img.width, game.gauges.translate.y - 188 * scale - gap); // Draw totem var x = -img.width / 2 - 2; var y = -img.height / 2 - 4; /* Draw switch totem load */ ctxDrawImage(ctx, img, x + 2, y); ctx.beginPath(); ctx.lineWidth = 5 * scale; ctx.strokeStyle = SPRITE.WEAPON_LOADING[world.time]; ctx.lineCap = "round"; ctx.arc(0, y + img.height / 2, 25 * scale, 0, PI2M * totem.timeout.v); ctx.stroke(); ctx.restore(); /* End animation control */ if (ret) { totem.wait = false; totem.timeout.v = 0; totem.timeout.o = false; } } } /* Draw clock */ function draw_clock() { var c = world.clock; var img = sprite[SPRITE.CLOCK][world.time]; ctxDrawImage(ctx, img, c.translate.x, c.translate.y); ctx.save(); ctx.translate(c.translate.x + img.width / 2, c.translate.y + img.height / 2); world.clock.now = (new window.Date().getTime() - c.init + c.hour) % WORLD.DAY; var angle = (PI2M * world.clock.now) / WORLD.DAY - window.Math.PI / 2; ctx.rotate(angle); ctxDrawImage(ctx, sprite[SPRITE.ARROW_CLOCK], -img.width / 2, -img.height / 2); ctx.restore(); } /* Draw build delay */ function draw_build_delay() { var build = user.build; if (build.wait) { var ret = build.timeout.update(); ctx.save(); var img = sprite[SPRITE.DELAY_WALL]; ctx.translate(img.width - 12 * scale, game.gauges.translate.y - 190 * scale); // Draw build var x = -img.width / 2 + 9; var y = -img.height / 2 - 4; /* Draw switch build load */ ctxDrawImage(ctx, img, x, y); ctx.beginPath(); ctx.lineWidth = 5 * scale; ctx.strokeStyle = SPRITE.HELMET_LOADING[world.time]; ctx.lineCap = "round"; ctx.arc(9, y + img.height / 2, 25 * scale, 0, PI2M * build.timeout.v); ctx.stroke(); ctx.restore(); /* End animation control */ if (ret) { build.wait = false; build.timeout.v = 0; build.timeout.o = false; } } } /* Draw helmet switch delay */ function draw_helmet_switch_delay() { var helmet = user.helmet; if (helmet.wait) { var ret = helmet.timeout.update(); ctx.save(); var img = sprite[SPRITE.DELAY_HELMET]; ctx.translate(img.width - 2 * scale, game.gauges.translate.y - 125 * scale); // Draw helmet var x = -img.width / 2 + 10; var y = -img.height / 2 - 4; /* Draw switch helmet load */ ctxDrawImage(ctx, img, x, y); ctx.beginPath(); ctx.lineWidth = 5 * scale; ctx.strokeStyle = SPRITE.HELMET_LOADING[world.time]; ctx.lineCap = "round"; ctx.arc(9, y + img.height / 2, 25 * scale, 0, PI2M * helmet.timeout.v); ctx.stroke(); ctx.restore(); /* End animation control */ if (ret) { helmet.wait = false; helmet.timeout.v = 0; helmet.timeout.o = false; } } } /* Draw helmet switch delay */ function draw_weapon_switch_delay() { var weapon = user.weapon; if (weapon.wait) { var ret = weapon.timeout.update(); ctx.save(); var img = sprite[SPRITE.DELAY_WEAPON]; ctx.translate(img.width - 2 * scale, game.gauges.translate.y - 60 * scale); // Draw sword var x = -img.width / 2 - 2; var y = -img.height / 2 - 4; /* Draw switch weapon load */ ctxDrawImage(ctx, img, x, y); ctx.beginPath(); ctx.lineWidth = 5 * scale; ctx.strokeStyle = SPRITE.WEAPON_LOADING[world.time]; ctx.lineCap = "round"; ctx.arc(0, y + img.height / 2, 25 * scale, 0, PI2M * weapon.timeout.v); ctx.stroke(); ctx.restore(); /* End animation control */ if (ret) { weapon.wait = false; weapon.timeout.v = 0; weapon.timeout.o = false; } } } function draw_ui_gear() { var craft = user.craft; if (craft.crafting) { var u = world.fast_units[user.id]; ctx.save(); ctx.translate(user.cam.x + u.x, user.cam.y + u.y); // Draw gear var img = sprite[SPRITE.GEAR]; var x = -img.width / 2; var y = -img.height / 2 - 125 * scale; /* Draw crafting loading */ ctxDrawImage(ctx, img, x, y); ctx.beginPath(); ctx.lineWidth = 5 * scale; ctx.strokeStyle = SPRITE.CRAFT_LOADING[world.time]; ctx.lineCap = "round"; ctx.arc(0, y + img.height / 2, 25 * scale, 0, PI2M * craft.timeout.v); ctx.stroke(); ctx.restore(); } } /* Draw craft system part of the ui */ function draw_ui_crafting() { var craft = user.craft; /* Draw preview crafting */ if (!craft.crafting && craft.preview !== -2) { var u = world.fast_units[user.id]; if (!u) return; ctx.save(); if (INV_INFOS[craft.preview].grid === 0 && craft.mode === 0) { ctx.translate(user.cam.x + u.x, user.cam.y + u.y); ctx.rotate(u.angle); ctx.translate(120, 0); } else { var x = window.Math.floor(u.x + window.Math.cos(u.angle) * 120); var y = window.Math.floor(u.y + window.Math.sin(u.angle) * 120); x = user.cam.x + (x - (x % 100) + 50); y = user.cam.y + (y - (y % 100) + 50); ctx.translate(x, y); } var img = sprite[craft.preview][world.time]; ctx.globalAlpha = 0.5; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.globalAlpha = 1; ctx.restore(); /* Some items work only with grid method */ if (INV_INFOS[craft.preview].grid === 0) { if (!craft.label[craft.mode]) { if (craft.mode === 0) craft.label[0] = create_text(scale, LANG[TEXT.MODE_FREE], 20, "#e2c340"); else craft.label[1] = create_text(scale, LANG[TEXT.MODE_GRID], 20, "#e2c340"); } var img = craft.label[craft.mode]; ctxDrawImage(ctx, img, canw2 + -img.width / 2, game.gauges.y - 26); } } /* Draw crafting progress */ if (craft.crafting) { var ret = craft.timeout.update(); /* Draw crafting buttons */ for (var i = 0; i < craft.can_craft.length; i++) { var button = craft.can_craft[i]; if (craft.id == button.id) { var h = scale * 42; var h2 = scale * 17; round_rect(ctx, button.info.translate.x, button.info.translate.y + h * (1 - craft.timeout.v), button.info.width, h * craft.timeout.v + h2, scale * 10); ctx.fillStyle = "#55B973"; ctx.fill(); ctx.globalAlpha = 0.8; button.draw(ctx); } else { ctx.globalAlpha = 0.5; button.draw(ctx); } ctx.globalAlpha = 1; } /* End animation control */ if (ret) { craft.crafting = false; craft.timeout.v = 0; craft.timeout.o = false; } return true; } else { /* Draw crafting buttons */ for (var i = 0; i < craft.can_craft.length; i++) craft.can_craft[i].draw(ctx); } return false; } /* Draw chat message in the game */ function draw_ui_chat() { /* Draw chat informations */ var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { players[i].draw_text(); } } /* Draw inventory part of the ui */ function draw_ui_inventory() { var inv = user.inv; var p = world.fast_units[user.id]; /* Draw inventory buttons */ for (var i = 0; i < inv.can_select.length; i++) { var button = inv.can_select[i]; var push = false; /* Draw pressed button */ var p = world.fast_units[user.id]; if (p && (p.right == button.id || (p.clothe == button.id && p.clothe > 0))) { push = true; ctxDrawImage(ctx, button.info.img[2], button.info.translate.x, button.info.translate.y, button.info.width, button.info.height); /* Just draw button */ } else button.draw(ctx); var n = user.inv.n[button.id]; if (n > 1) draw_amount(n, button); if (n > 0) draw_slot_number(i, button, push); /* Draw add button, to give an item to the chest */ var chest = user.chest; if (chest.open && (chest.id < 1 || chest.id == button.id) && (!chest.lock || chest.pid == user.id)) game.plus_buttons[button.id].draw(ctx); /* Draw add button, to give an item to the furnace */ var furnace = user.furnace; if (furnace.open && ItemType.WOOD == button.id) game.plus_buttons[button.id].draw(ctx); /* Draw add button, to give an item to the well */ var well = user.well; if (well.open && ItemType.BUCKET_FULL == button.id) game.plus_buttons[button.id].draw(ctx); /* Draw add button, to give an item to the windmill */ var windmill = user.windmill; if (windmill.open && ItemType.WHEAT == button.id) game.plus_buttons[button.id].draw(ctx); /* Draw add button, to give an item to the extractor */ var extractor = user.extractor; if (extractor.open && ItemType.WOOD == button.id) game.plus_buttons[button.id].draw(ctx); /* Draw add button, to give an item to the bread oven */ var bread_oven = user.bread_oven; if (bread_oven.open && (ItemType.WOOD == button.id || ItemType.FLOUR == button.id)) game.plus_buttons[button.id].draw(ctx); } /* Draw empty slot */ if (button && i < inv.max) { var img = sprite[SPRITE.EMPTY_SLOT][2]; x = button.info.translate.x; y = button.info.translate.y; for (j = 1; i < inv.max; i++, j++) ctxDrawImage(ctx, img, x + j * (img.width + 5), y); } } /* Draw values of gauges (life, hunger and cold) */ function draw_gauges() { ctx.save(); var old_scale = scale; if (user.gauges.life.x < 0.25) ctx.globalAlpha = user.gauges.warn_life.v; var y = user.inv.can_select.length > 0 ? -70 : 0; if (user.chest.open || (user.furnace.open && -1 != user.inv.find_item(ItemType.WOOD)) || (user.windmill.open && -1 != user.inv.find_item(ItemType.WHEAT)) || (user.extractor.open && -1 != user.inv.find_item(ItemType.WOOD)) || (user.well.open && -1 != user.inv.find_item(ItemType.BUCKET_FULL)) || (user.bread_oven.open && (-1 != user.inv.find_item(ItemType.WOOD) || -1 != user.inv.find_item(ItemType.FLOUR)))) y -= 50 * scale; ctx.translate((canw - 950 * scale) / 2, y); ctx.fillStyle = "#69A148"; ctx.fillRect(this.translate.x + 37 * scale, this.translate.y + 17 * scale, user.gauges.life.x * 178 * scale, 18 * scale); ctx.globalAlpha = 1; if (user.gauges.hunger.x < 0.35) { ctx.fillStyle = "#8F050A"; ctx.globalAlpha = user.gauges.warn_hunger.v; ctx.fillRect(this.translate.x + 277 * scale, this.translate.y + 17 * scale, 178 * scale, 18 * scale); ctx.globalAlpha = 1; } ctx.fillStyle = "#AF352A"; ctx.fillRect(this.translate.x + 277 * scale, this.translate.y + 17 * scale, user.gauges.hunger.x * 178 * scale, 18 * scale); if (user.gauges.cold.x < 0.35) { ctx.fillStyle = "#366B91"; ctx.globalAlpha = user.gauges.warn_cold.v; ctx.fillRect(this.translate.x + 517 * scale, this.translate.y + 17 * scale, 178 * scale, 18 * scale); ctx.globalAlpha = 1; } ctx.fillStyle = "#669BB1"; ctx.fillRect(this.translate.x + 517 * scale, this.translate.y + 17 * scale, user.gauges.cold.x * 178 * scale, 18 * scale); if (user.gauges.cold.x > 0.99) { if (user.gauges.warm.x < 0.35) { ctx.fillStyle = "#6C4036"; ctx.globalAlpha = user.gauges.warn_warm.v; ctx.fillRect(this.translate.x + 517 * scale, this.translate.y + 17 * scale, 178 * scale, 18 * scale); ctx.globalAlpha = 1; } ctx.fillStyle = "#9C4036"; ctx.fillRect(this.translate.x + 517 * scale, this.translate.y + 17 * scale, (1 - user.gauges.warm.x) * 178 * scale, 18 * scale); } if (user.gauges.thirst.x < 0.35) { ctx.fillStyle = "#001A57"; ctx.globalAlpha = user.gauges.warn_thirst.v; ctx.fillRect(this.translate.x + 757 * scale, this.translate.y + 17 * scale, 178 * scale, 18 * scale); ctx.globalAlpha = 1; } ctx.fillStyle = "#074A87"; ctx.fillRect(this.translate.x + 757 * scale, this.translate.y + 17 * scale, user.gauges.thirst.x * 178 * scale, 18 * scale); scale = old_scale; /* Draw background */ ctxDrawImage(ctx, this.img, this.translate.x, this.translate.y); this.y = this.translate.y + y; ctx.restore(); if (user.gauges.oxygen.x < 0.99) { var x = window.Math.floor(canw2 - sprite[SPRITE.OXYGEN].width / 2); y += this.translate.y - sprite[SPRITE.OXYGEN].height - 5 * scale; ctx.fillStyle = "#BBE8EF"; ctx.fillRect(x + 5, y + 5 * scale, 588 * scale * user.gauges.oxygen.x, 10 * scale); if (user.gauges.oxygen.x < 0.35) { ctx.fillStyle = "#9BA8AF"; ctx.globalAlpha = user.gauges.warn_oxygen.v; ctx.fillRect(x + 5, y + 5, 588 * scale, 10 * scale); ctx.globalAlpha = 1; } ctxDrawImage(ctx, sprite[SPRITE.OXYGEN], x, y); this.y = y; } } /* Draw a door */ function draw_door(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.info & 1) { ctx.globalAlpha = 0.3; } var img = sprite[id][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.globalAlpha = 1; ctx.restore(); } /* Draw simple item */ function draw_chest() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var img = sprite[ItemType.CHEST][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); if (this.lock) { var img = sprite[ItemType.LOCK][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2 + x - 1 * scale, -h / 2 + y, w, h); } ctx.restore(); } function draw_thornbush_seed() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[SPRITE.THORNBUSH_SEED_MOB][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_garlic_seed() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[SPRITE.GARLIC_SEED_MOB][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_pumpkin_seed() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[SPRITE.PUMPKIN_SEED_MOB][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_aloe_vera_mob() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[ItemType.ALOE_VERA][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_wheat_seed() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[SPRITE.WHEAT_MOB][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } /* Draw life */ function draw_life_small(life) { var life = life / 100; if (life > 0.8) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.globalAlpha = 0.5; circle_angle(ctx, x, y, 18 * scale, life); fill_path(ctx, null, "#000000", 18 * scale); ctx.globalAlpha = 1; circle_angle(ctx, x, y, 18 * scale, life); fill_path(ctx, null, SPRITE.BROWN_LIFE[world.time], 6 * scale); ctx.restore(); } /* Draw life */ function draw_life(life) { var life = life / 100; if (life > 0.96) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.globalAlpha = 0.5; circle_angle(ctx, x, y, 28 * scale, life); fill_path(ctx, null, "#000000", 18 * scale); ctx.globalAlpha = 1; circle_angle(ctx, x, y, 28 * scale, life); fill_path(ctx, null, SPRITE.CRAFT_LOADING[world.time], 6 * scale); ctx.restore(); } /* Draw roof */ function draw_roof() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var len = sprite[SPRITE.ROOFS].length; var img = sprite[SPRITE.ROOFS][(this.j + (this.i % 2)) % len][world.time]; w = -img.width; h = -img.height; var p = world.fast_units[user.id]; if (p && Utils.dist(this, p) < 550) ctx.globalAlpha = 0.3; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.globalAlpha = 1; ctx.restore(); } /* Draw garland item */ /* Christmas*/ function draw_garland(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.halo.update()) this.color += 0.2 + window.Math.random() * 0.3; var img = sprite[SPRITE.GARLANDS][window.Math.floor(this.id + this.color) % 5][world.time]; w = -img.width * this.halo.v; h = -img.height * this.halo.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.restore(); } /* Draw bed */ function draw_bed(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (id === SPRITE.BED_TOP && !world.transition) { var opacity = 0; var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var dist = Utils.dist(players[i], this); if (dist < 140 && dist > 35) { opacity = 0; break; } else if (dist <= 35) opacity = 1; } if (opacity === 0) this.opacity = window.Math.max(0.5, this.opacity - delta / 1.5); else this.opacity = window.Math.min(1, this.opacity + delta / 1.5); ctx.globalAlpha = this.opacity; } var img = sprite[id][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.globalAlpha = 1; ctx.restore(); } /* Draw simple item */ function draw_simple_item(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var img = sprite[id][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.restore(); } var __wave = 0; function draw_river_tile(is, ie, js, je, id, t, max, min = 0, rand) { if (min === undefined) min = 0; for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { var tile = MAP.tiles[i][j]; if (tile === undefined || tile[t] === undefined) continue; var object = tile[t]; var img = sprite[id][world.time][object.river]; ctxDrawImage(ctx, img, user.cam.x + object.x - img.width / (4 * _scale_object), user.cam.y + object.y - img.height / (4 * _scale_object), img.width / (2 * _scale_object), img.height / (2 * _scale_object)); if (ui.quality) { var m = 0x80000000; // 2**31; var a = 1103515245; var c = 12345; var _id = ((a * (i * 1000 + j) + c) % m) / m; if (_id < 0.2) { _id = window.Math.floor(sprite[SPRITE.RIVER_DECO][world.time][object.river].length * (_id * 5)); var img = sprite[SPRITE.RIVER_DECO][world.time][object.river][_id]; ctxDrawImage(ctx, img, user.cam.x + object.x - img.width / (4 * _scale_object), user.cam.y + object.y - img.height / (4 * _scale_object), img.width / (2 * _scale_object), img.height / (2 * _scale_object)); } else if (object.current !== 0) { var img = sprite[SPRITE.RIVER_WAVE][world.time]; var _wave = (__wave + (i % 2) * 30) % 60; ctx.globalAlpha = _wave < 30 ? _wave / 30 : 1 - (_wave - 30) / 30; ctxDrawImage(ctx, img, user.cam.x + object.x - img.width / (4 * _scale_object), user.cam.y + object.y - img.height / (4 * _scale_object) - 30 + _wave, img.width / (2 * _scale_object), img.height / (2 * _scale_object)); ctx.globalAlpha = 1; } } } } } function draw_sand_worm_ground() { if ((this.info & 1) === 1) this.dig = window.Math.min(this.dig + delta, 2.2); else { this.dig = window.Math.max(this.dig - delta, 0); this.groundTimer += delta; if (this.groundTimer > 0.1) { this.groundTimer = 0; var ground = { x: this.x + window.Math.random() * 60 - 30, y: this.y + window.Math.random() * 60 - 30, a: 0, r: window.Math.random() * 30 + 30 }; this.ground.push(ground); } } // Render worm trail for (var i = 0; i < this.ground.length; i++) { var ground = this.ground[i]; ctx.save(); ctx.translate(user.cam.x + ground.x, user.cam.y + ground.y); ground.a = window.Math.min(1, ground.a + delta / 2); var _alpha = ground.a; if (_alpha < 0.2) _alpha *= 5; else if (_alpha > 0.8) _alpha = (1 - _alpha) * 5; else _alpha = 1; ctx.globalAlpha = _alpha * 0.8; circle(ctx, 0, 0, ground.r); fill_path(ctx, SPRITE.SAND_WORM_GROUND[world.time]); ctx.restore(); // Remove ground circle if (ground.a === 1) { this.ground.splice(i, 1); i--; } } } function draw_sand_worm() { var img = undefined; var imgHurt = undefined; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.breath.update(); this.rotate.update(); if (this.dig >= 0.1 && this.dig <= 1.1) { var _alpha = window.Math.max(0, window.Math.min(1, this.dig - 0.1)); if (_alpha < 0.2) _alpha *= 5; else if (_alpha > 0.8) _alpha = (1 - _alpha) * 5; else _alpha = 1; var img = sprite[SPRITE.SAND_WORM1][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctx.globalAlpha = _alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); var imgHurt = sprite[SPRITE.HURT_SAND_WORM1]; } if (this.dig >= 0.9) { var _alpha = window.Math.max(0, window.Math.min(1, this.dig - 0.9)); if (_alpha < 0.2) _alpha *= 5; else _alpha = 1; var img = sprite[SPRITE.SAND_WORM2][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctx.globalAlpha = _alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); var imgHurt = sprite[SPRITE.HURT_SAND_WORM2]; } if (this.action & STATE.HURT && imgHurt !== undefined) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = (0.6 - this.hit.v) * _alpha; w = -imgHurt.width * this.breath.v; h = -imgHurt.height * this.breath.v; ctxDrawImage(ctx, imgHurt, -w / 4, -h / 4, w / 2, h / 2); } ctx.globalAlpha = 1; ctx.restore(); } function draw_vulture() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var dist = Utils.dist(this, this.r); if (dist > 350) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); if (dist < 350) this._alpha = window.Math.max(0, this._alpha - delta * 2.2); else this._alpha = window.Math.min(1, this._alpha + delta * 2.2); // Render the hawk when he walk on the ground var img = sprite[SPRITE.VULTURE_GROUND_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.globalAlpha = 1 - this._alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); // Render the flying hawk var img = sprite[SPRITE.VULTURE_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = (0.6 - this.hit.v) * (1 - this._alpha); var img = sprite[SPRITE.HURT_VULTURE_GROUND]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_VULTURE]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } var img = sprite[SPRITE.VULTURE_WING_LEFT_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-40 * scale, 80 * scale); ctx.rotate(this.rotate.v); ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_VULTURE_WING_LEFT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); var img = sprite[SPRITE.VULTURE_WING_RIGHT_ATTACK][world.time]; ctx.save(); ctx.translate(40 * scale, 80 * scale); ctx.rotate(-this.rotate.v); ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_VULTURE_WING_RIGHT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.globalAlpha = 1; ctx.restore(); ctx.restore(); } function draw_hawk() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var dist = Utils.dist(this, this.r); if (dist > 350) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); if (dist < 350) this._alpha = window.Math.max(0, this._alpha - delta * 2.2); else this._alpha = window.Math.min(1, this._alpha + delta * 2.2); // Render the hawk when he walk on the ground if ((this.info & 1) === 0) img = sprite[SPRITE.HAWK_GROUND][world.time]; else img = sprite[SPRITE.HAWK_GROUND_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.globalAlpha = 1 - this._alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); // Render the flying hawk if ((this.info & 1) === 0) img = sprite[SPRITE.HAWK][world.time]; else img = sprite[SPRITE.HAWK_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = (0.6 - this.hit.v) * (1 - this._alpha); var img = sprite[SPRITE.HURT_HAWK_GROUND]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_HAWK]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } if ((this.info & 1) === 0) img = sprite[SPRITE.HAWK_WING_LEFT][world.time]; else img = sprite[SPRITE.HAWK_WING_LEFT_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-20 * scale, 0 * scale); ctx.rotate(this.rotate.v); ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_HAWK_WING_LEFT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); if ((this.info & 1) === 0) img = sprite[SPRITE.HAWK_WING_RIGHT][world.time]; else img = sprite[SPRITE.HAWK_WING_RIGHT_ATTACK][world.time]; ctx.save(); ctx.translate(20 * scale, 0 * scale); ctx.rotate(-this.rotate.v); ctx.globalAlpha = this._alpha; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = (0.6 - this.hit.v) * this._alpha; var img = sprite[SPRITE.HURT_HAWK_WING_RIGHT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.globalAlpha = 1; ctx.restore(); ctx.restore(); } function draw_baby_lava() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (Utils.dist(this, this.r) > 300) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); if (this.info === 0) img = sprite[SPRITE.BABY_LAVA][world.time]; else img = sprite[SPRITE.BABY_LAVA_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_LAVA]; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } if (this.info === 0) img = sprite[SPRITE.BABY_LAVA_WING_LEFT][world.time]; else img = sprite[SPRITE.BABY_LAVA_WING_LEFT_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-40 * scale, 10 * scale); ctx.rotate(this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_LAVA_WING_LEFT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); if (this.info === 0) img = sprite[SPRITE.BABY_LAVA_WING_RIGHT][world.time]; else img = sprite[SPRITE.BABY_LAVA_WING_RIGHT_ATTACK][world.time]; ctx.save(); ctx.translate(40 * scale, 10 * scale); ctx.rotate(-this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_LAVA_WING_RIGHT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); ctx.restore(); } function draw_baby_dragon() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (Utils.dist(this, this.r) > 300) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); if (this.info === 0) img = sprite[SPRITE.BABY_DRAGON][world.time]; else img = sprite[SPRITE.BABY_DRAGON_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_DRAGON]; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } if (this.info === 0) img = sprite[SPRITE.BABY_DRAGON_WING_LEFT][world.time]; else img = sprite[SPRITE.BABY_DRAGON_WING_LEFT_ATTACK][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-40 * scale, 10 * scale); ctx.rotate(this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_DRAGON_WING_LEFT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); if (this.info === 0) img = sprite[SPRITE.BABY_DRAGON_WING_RIGHT][world.time]; else img = sprite[SPRITE.BABY_DRAGON_WING_RIGHT_ATTACK][world.time]; ctx.save(); ctx.translate(40 * scale, 10 * scale); ctx.rotate(-this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_DRAGON_WING_RIGHT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); ctx.restore(); } function draw_lava_dragon() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (Utils.dist(this, this.r) > 300) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); var img = sprite[SPRITE.LAVA_DRAGON][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_LAVA_DRAGON]; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } var img = sprite[SPRITE.LAVA_WING_LEFT][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-60 * scale, 20 * scale); ctx.rotate(this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_LAVA_WING_LEFT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); var img = sprite[SPRITE.LAVA_WING_RIGHT][world.time]; ctx.save(); ctx.translate(60 * scale, 20 * scale); ctx.rotate(-this.rotate.v); ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_LAVA_WING_RIGHT]; ctxDrawImage(ctx, img, (-w * scale) / 4, (-h * scale) / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); ctx.restore(); } function draw_dragon() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (Utils.dist(this, this.r) > 300) this.scale = window.Math.min(this.scale + delta / 2, 1.8); else this.scale = window.Math.max(this.scale - delta, 1); this.breath.update(); this.rotate.update(); var img = sprite[SPRITE.DRAGON][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_DRAGON]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } var img = sprite[SPRITE.WING_LEFT][world.time]; w = -img.width * this.breath.v * this.scale; h = -img.height * this.breath.v * this.scale; ctx.save(); ctx.translate(-30 * scale, 70 * scale); ctx.rotate(this.rotate.v); ctxDrawImage(ctx, img, -10 * scale, -40 * scale, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_WING_LEFT]; ctxDrawImage(ctx, img, -10 * scale, -40 * scale, w, h); ctx.globalAlpha = 1; } ctx.restore(); var img = sprite[SPRITE.WING_RIGHT][world.time]; ctx.save(); ctx.translate(30 * scale, 70 * scale); ctx.rotate(-this.rotate.v); ctxDrawImage(ctx, img, 10 * scale - w, -40 * scale, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_WING_RIGHT]; ctxDrawImage(ctx, img, 10 * scale - w, -40 * scale, w, h); ctx.globalAlpha = 1; } ctx.restore(); ctx.restore(); } function draw_crate(id, _hurt) { if (sprite[id][this.info] === undefined) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); // Christmas present if (id === SPRITE.GIFT) { id = SPRITE.CRATE; this.info = 36; } var img = sprite[id][this.info][world.time]; w = -img.width / 2; h = -img.height / 2; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var hurt = get_image_effect(this.info, img, __EFFECT_BOX__); ctxDrawImage(ctx, hurt, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_simple_mobs_2(id, hurt) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); var img = sprite[id][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[hurt]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_baby_mammoth() { this.breath.update(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.info === 0) img = sprite[SPRITE.BABY_MAMMOTH][world.time]; else img = sprite[SPRITE.BABY_MAMMOTH_ATTACK][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BABY_MAMMOTH]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_boar() { this.breath.update(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.info === 0) img = sprite[SPRITE.BOAR][world.time]; else img = sprite[SPRITE.BOAR_ATTACK][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_BOAR]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_crab_boss() { this.breath.update(); this.breathl.update(); this.breathr.update(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.info === 0) img = sprite[SPRITE.CRAB_BOSS][world.time]; else img = sprite[SPRITE.CRAB_BOSS_ATTACK][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB_BOSS]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { if (this.heal.update() && this.heal.o == false) this.action -= STATE.COLD; ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB_BOSS]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle + PI4D); ctx.translate(100, 0); ctx.rotate(PI2D); if (this.info === 0) img = sprite[SPRITE.CRAB_BOSS_CLAW_LEFT][world.time]; else img = sprite[SPRITE.CRAB_BOSS_CLAW_LEFT_ATTACK][world.time]; w = -img.width * this.breathl.v; h = -img.height * this.breathl.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB_BOSS_CLAW_LEFT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB_BOSS_CLAW_LEFT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle + PI2D + PI4D); ctx.translate(100, 0); ctx.rotate(PI2D); if (this.info === 0) img = sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT][world.time]; else img = sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT_ATTACK][world.time]; w = -img.width * this.breathr.v; h = -img.height * this.breathr.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB_BOSS_CLAW_RIGHT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB_BOSS_CLAW_RIGHT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_crab() { this.breath.update(); this.breathl.update(); this.breathr.update(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.info === 0) img = sprite[SPRITE.CRAB][world.time]; else img = sprite[SPRITE.CRAB_ATTACK][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { if (this.heal.update() && this.heal.o == false) this.action -= STATE.COLD; ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle + PI4D); ctx.translate(55, 0); ctx.rotate(PI2D); if (this.info === 0) img = sprite[SPRITE.CRAB_CLAW_LEFT][world.time]; else img = sprite[SPRITE.CRAB_CLAW_LEFT_ATTACK][world.time]; w = -img.width * this.breathl.v; h = -img.height * this.breathl.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB_CLAW_LEFT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB_CLAW_LEFT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle + PI2D + PI4D); ctx.translate(55, 0); ctx.rotate(PI2D); if (this.info === 0) img = sprite[SPRITE.CRAB_CLAW_RIGHT][world.time]; else img = sprite[SPRITE.CRAB_CLAW_RIGHT_ATTACK][world.time]; w = -img.width * this.breathr.v; h = -img.height * this.breathr.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[SPRITE.HURT_CRAB_CLAW_RIGHT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { ctx.globalAlpha = 0.6 - this.heal.v; var img = sprite[SPRITE.HEAL_CRAB_CLAW_RIGHT]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_spell() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.born = window.Math.min(1, this.born + delta * 2); this.breath.update(); var img = sprite[SPRITE.SPELL][world.time][this.spell]; if (this.spell < 2) { w = -img.width * this.breath.v; h = -img.height * this.breath.v; } else { if (this.fly === 0) { w = -img.width; h = -img.height; } else { w = -img.width * 1.35; h = -img.height * 1.35; } } ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; ctx.restore(); } function draw_simple_mobs(id, hurt) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.breath.update(); var img = sprite[id][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[hurt]; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; } ctx.restore(); } function draw_simple_mobs_hd(id, hurt) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.breath.update(); var img = sprite[id][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; var img = sprite[hurt]; ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.globalAlpha = 1; } ctx.restore(); } function draw_breath_2(id, x, y) { ctx.save(); ctx.translate(user.cam.x + x, user.cam.y + y); ctx.rotate(this.angle); ctx.translate(this.x - x, this.y - y); this.breath.update(); var img = sprite[id][world.time]; w = -img.width * this.breath.v; h = -img.height * this.breath.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_breath(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.breath.update(); w = -sprite[id][world.time].width * this.breath.v; h = -sprite[id][world.time].height * this.breath.v; ctxDrawImage(ctx, sprite[id][world.time], -w / 2, -h / 2, w, h); ctx.restore(); } function draw_thornbush() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_THORNBUSH_DRIED][world.time]; else var img = sprite[ItemType.THORNBUSH_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_THORNBUSH][world.time]; else var img = sprite[ItemType.THORNBUSH][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_garlic() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_GARLIC_DRIED][world.time]; else var img = sprite[ItemType.GARLIC_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_GARLIC][world.time]; else var img = sprite[ItemType.GARLIC][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_aloe_vera() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_ALOE_VERA_DRIED][world.time]; else var img = sprite[ItemType.ALOE_VERA_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_ALOE_VERA][world.time]; else var img = sprite[ItemType.ALOE_VERA][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_watermelon() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_WATERMELON_DRIED][world.time]; else var img = sprite[ItemType.WATERMELON_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_WATERMELON][world.time]; else var img = sprite[ItemType.WATERMELON][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_carrot() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_CARROT_DRIED][world.time]; else var img = sprite[ItemType.CARROT_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_CARROT][world.time]; else var img = sprite[ItemType.CARROT][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_pumpkin() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.PLANT_PUMPKIN_DRIED][world.time]; else var img = sprite[ItemType.PUMPKIN_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { if (this.info & 0x10) var img = sprite[SPRITE.DRIED_PUMPKIN][world.time]; else var img = sprite[ItemType.PUMPKIN][world.time]; ctx.translate(0, img.height / 2); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_wheat() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var amount = this.info & 0xf; /* Draw seed */ if (this.info === 10 || amount === 0) { ctx.rotate(this.angle); this.ground.update(); if (this.info & 0x10) var img = sprite[SPRITE.WHEAT_SEED_DRIED][world.time]; else var img = sprite[ItemType.WHEAT_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); } else { this.wind.update(); if (this.info & 0x10) var img = sprite[SPRITE.DRIED_WHEAT][world.time]; else var img = sprite[ItemType.WHEAT][world.time]; ctx.translate(0, img.height / 2); ctx.rotate(this.wind.v); ctxDrawImage(ctx, img, x - img.width / 2, -img.height + y); } ctx.restore(); } function draw_seed() { if (this.info < 10) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } this.ground.update(); var img = sprite[ItemType.BERRY_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.restore(); } function draw_plant() { if (this.info === 10) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.info & 0x10) var img = sprite[SPRITE.DRIED_PLANT][world.time]; else var img = sprite[SPRITE.PLANT_MINI][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.width / 2 + y); ctx.restore(); var amount = this.info & 0xf; for (var i = 0; i < amount; i++) this.fruits[i].draw(SPRITE.FRUIT); } function draw_tomato() { if (this.info < 10) return; ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } this.ground.update(); var img = sprite[ItemType.TOMATO_SEED][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2 + x, -h / 2 + y, w, h); ctx.restore(); } function draw_tomato_fruit() { if (this.info === 10) return; var amount = this.info & 0xf; for (var i = 0; i < amount; i++) this.fruits[i].draw(ItemType.TOMATO, this.x, this.y); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.info & 0x10) var img = sprite[SPRITE.DRIED_TOMATO_MINI][world.time]; else var img = sprite[SPRITE.TOMATO_MINI][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.width / 2 + y); ctx.restore(); } function draw_furnace() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.info) img = sprite[SPRITE.FURNACE_ON][world.time]; else img = sprite[ItemType.FURNACE][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.height / 2 + y); ctx.restore(); } function draw_furnace_ground() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.ground.update(); ctx.globalAlpha = 0.3; var img = sprite[SPRITE.GROUND_FIRE][world.time]; //var img = sprite[SPRITE.GROUND_FIRE_PUMPKIN][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; ctx.restore(); } function draw_bread_oven_smog() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.info & 0x1f && this.info & 0x3e0 && (this.info & 0x7c00) != 0x7c00 && (this.smog.length == 0 || this.smog[this.smog.length - 1] <= SPRITE.SMOG_PUSH)) this.smog.push(SPRITE.SMOG); for (var i = 0; i < this.smog.length; i++) { this.smog[i] = window.Math.max(0, this.smog[i] - delta * SPRITE.SMOG_SPEED); ctx.globalAlpha = this.smog[i] / 1.3; var v = (1 - this.smog[i]) * 40; var r = (1 - this.smog[i]) * 35 + 10; circle(ctx, -68 * scale + window.Math.cos(-this.angle - window.Math.PI / 2) * v, -20 * scale + window.Math.sin(-this.angle - window.Math.PI / 2) * v, r); fill_path(ctx, "#333333"); } ctx.globalAlpha = 1; if (this.smog.length > 0 && this.smog[0] === 0) this.smog.shift(); ctx.restore(); } function draw_fire_ground(id) { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.ground.update(); ctx.globalAlpha = 0.3; var img = sprite[SPRITE.GROUND_FIRE][world.time]; var w = -img.width * this.ground.v; var h = -img.height * this.ground.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.globalAlpha = 1; if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } var img = sprite[id][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.height / 2 + y); ctx.restore(); } function draw_bread_oven() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } if (this.info & 0x1f && this.info & 0x3e0 && (this.info & 0x7c00) != 0x7c00) { var img = sprite[SPRITE.BREAD_OVEN_ON][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.height / 2 + y); this.up.update(); var img = sprite[SPRITE.BREAD_LIGHT_UP][world.time]; var w = -img.width * this.up.v; var h = -img.height * this.up.v; ctxDrawImage(ctx, img, -w / 2 + 1 * scale, -h / 2 + 3 * scale, w, h); } else { var img = sprite[ItemType.BREAD_OVEN][world.time]; ctxDrawImage(ctx, img, -img.width / 2 + x, -img.height / 2 + y); } ctx.restore(); } function draw_windmill_wings() { if (this.hit.update) { var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } /* Wings rotate only if windmill can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 0.5) % (PI2M); ctx.save(); ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.save(); ctx.rotate(this.rotate); var img = sprite[SPRITE.WINDMILL_WINGS][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); ctx.save(); ctx.rotate(this.angl); var img = sprite[SPRITE.WINDMILL_HEAD][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); ctx.restore(); } function draw_extractor_stone() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); if (this.info & 0xff && (this.info & 0xff00) != 0xff00) { x += window.Math.random() * 2 - 1; y += window.Math.random() * 2 - 1; } ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.STONE_EXTRACTOR][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); /* Drill rotate only if extractor can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 3) % (PI2M); ctx.rotate(this.rotate); var img = sprite[SPRITE.EXTRACTOR_MACHINE0_STONE][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function draw_extractor_gold() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); if (this.info & 0xff && (this.info & 0xff00) != 0xff00) { x += window.Math.random() * 2 - 1; y += window.Math.random() * 2 - 1; } ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.GOLD_EXTRACTOR][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); /* Drill rotate only if extractor can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 3) % (PI2M); ctx.rotate(this.rotate); var img = sprite[SPRITE.EXTRACTOR_MACHINE0_GOLD][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function encode(arr, key = window.Math.floor(window.Math.random() * 256)) { return [...arr.map((value, index) => (value ^ key ^ (user.id ? user.id : 0) ^ arr.length)), key]; } function draw_extractor_diamond() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); if (this.info & 0xff && (this.info & 0xff00) != 0xff00) { x += window.Math.random() * 2 - 1; y += window.Math.random() * 2 - 1; } ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.DIAMOND_EXTRACTOR][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); /* Drill rotate only if extractor can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 3) % (PI2M); ctx.rotate(this.rotate); var img = sprite[SPRITE.EXTRACTOR_MACHINE0_DIAMOND][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function draw_extractor_amethyst() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); if (this.info & 0xff && (this.info & 0xff00) != 0xff00) { x += window.Math.random() * 2 - 1; y += window.Math.random() * 2 - 1; } ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.AMETHYST_EXTRACTOR][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); /* Drill rotate only if extractor can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 3) % (PI2M); ctx.rotate(this.rotate); var img = sprite[SPRITE.EXTRACTOR_MACHINE0_AMETHYST][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function draw_extractor_reidite() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); if (this.info & 0xff && (this.info & 0xff00) != 0xff00) { x += window.Math.random() * 2 - 1; y += window.Math.random() * 2 - 1; } ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.REIDITE_EXTRACTOR][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); /* Drill rotate only if extractor can work */ if (this.info & 0xff && (this.info & 0xff00) != 0xff00) this.rotate = (this.rotate + delta * 3) % (PI2M); ctx.rotate(this.rotate); var img = sprite[SPRITE.EXTRACTOR_MACHINE0_REIDITE][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function draw_windmill_head() { if (this.hit.update) { if (this.hit.anim.update() && this.hit.anim.o == false) this.hit.update = false; var v = (1 - this.hit.anim.v) * delta * 600 * scale; var x = window.Math.cos(this.hit.angle - this.angle) * v; var y = window.Math.sin(this.hit.angle - this.angle) * v; } else { var x = 0; var y = 0; } ctx.save(); ctx.translate(user.cam.x + this.x + x, user.cam.y + this.y + y); ctx.rotate(this.angle); var img = sprite[ItemType.WINDMILL][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.restore(); } function send(message, draw_shadow, color) { var WoEiWG,fPkL9T,TMSBt4D,I7AwTdg,uToSPt,llSkY1,okFjd20,QhUy5wq,dtWpn39;const YpFQ3Uq=[0x0,0x1,0x8,0xff,"length","undefined",0x3f,0x6,"fromCodePoint",0x7,0xc,"push",0x5b,0x1fff,0x58,0xd,0xe,0x68];function rZ21Tt(WoEiWG){var fPkL9T="viKflIAbgnBQht}PC?uoT=NXw!JS2F6%/9xpYGZ:e,j^L~m[(k5>\"H$a{M4+cr`VDO.U8]YpFQ3Uq[0xe]?YpFQ3Uq[0xf]:YpFQ3Uq[0x10]);do{pSTLbVW(uToSPt.push(llSkY1&YpFQ3Uq[0x3]),llSkY1>>=YpFQ3Uq[0x2],okFjd20-=YpFQ3Uq[0x2])}while(okFjd20>YpFQ3Uq[0x9]);QhUy5wq=-YpFQ3Uq[0x1]}}if(QhUy5wq>-YpFQ3Uq[0x1]){uToSPt.push((llSkY1|QhUy5wq<l:o,r?n6nM8u%.O1rcNe{TE>$W(6`QfK]w{xnpNzy5O,I","0jand]!pgT.qySDFa$\"Hu","G(+/jG[V.c519Gx>g","]X6b\"G`Alo,\"L[DuYX:l","je3>t(vY\"nx%auSj&F,iM}|BZf^9XS|1\"2Y>h9xeyCTUAdH`xxuA","W>tB79v","3&tBgx#)OMep](1Jz?x|h]5edTyi>}wxIJx|Vc51?Pn$i","4yFa4Wo[_4IAAr!2IFXl","EGlB|;@XWor{PE.?y%)\"I)5mh+1?G_pshzOp5h{1Zw;`g;&i","iewkE5ZDzgK>%Jse/AR\"t3Pt3nlGiC)S/8]\"05u4HDM&4!vF%$/d!","ic];f|Pb++D\"/+vwa`C9M|/uI",")&v$2+v","ZFZ\"_*vjltJwTP.Y](ta+>YYpc`{\"+e%[hSFVarF8t)N9Cj%<>~l8)1AI","%exdd5NgYMvR|+fufum%[k\";$DwtBGOGG;f",")+Ogfm^]P=","=$UJr)J;S+/(+|T+kpH$TT3|,!;X%\"K3>t|tWU4En",":JbzZ@^[^}+","6O@bwRFbQ}*qQJTSVnHb1YTKlMC|v","#Q+FSME\"*cJBO(|J^JynbYxK5Pid1fLJwnqbbcmh)g9","<$/66RZYgOS","G$%nP556P=lK^K\",mJ6\"^1}4GD1i:J&uVX+qq(Sbqur.a44F{`/ALdXi","r8c;XzgYF=WHcSa,^y%&J+^i+T",")!tbhZTDDuaz++;ZIV?dszjm+`;mn|XxGfv$=@,i","5ftbw\"AmG4M!mr.6^`Bq%&m\"C.]P/[,oQ;cq3zti","@(I;zYRhgB`=KI96|8~%c()@W$T(XJ+2qQgA","$J4/p1{e~.R<||?T^M_>?Mf3;`0V\"+]!A8KdlHDu1c>zbJvj{f(A","Uj`b>dN1vh:B;]*xtmvA>{NKWn4","d%0bedd>M4^.efuS^`tz6&@)B}$<7J~oSyhB/8=[xPfR6K","`25gaV@X%h^Bi","Zf/$Z@/0@t1<+f","|AM>>Vx\"xn","(n6ak8%p~`B|y}tTQGaz`m88Ehlx=(A","4ylaz*eKI","c$)n)`dF6+fdIIbwX>q\"Wyv","GT(n~dcu=ow4kC.G#>7H;M+tpD|l^<6YMOR5;w/Pr\"kClZCJ9A","s&&AQ(7x!4@;2S`jMX$bS$TggB*;^}a,^`}\"d;1A;+uGmt]o","pFV2MW`6Vgi|%Sap7~*/$4^o\"D24[J*lu2`@!]wp!","/M$zBMp]A","#&?>{V@F1P_N8+7N+($nU(Azw[ua","x;ndq5<4vh|lA3(e&(K","M$jSy5~[oc1u/y]oR+\"aK|n!~gyF`H\"wL*$x_2^/I|e4(VQE5!=ScJiR4x:b!?uGI(1:qG$ao","IVylu],VZD13=(jJ8xFb+|ft&?pztczZgkQF|xKA3KjLQotpJQZ2e)2>Vj4M?2fXE/Xo>i","ax!Sd*MXd`gt2+P:4G];Dce[Ui","vm*5vcO>{t6|KGCJ+TN%$|+X*cFBMC(>q]MiXTS]#(UuM>*q;;IostJ","FXWH{WjucgSSs<6Yd`BF:[wmGDdHKI:w;8`n","]$e$nakiWM%SLf?AF1.4.nm}gBObOxI","ayc;DcF,d{lxS}]!gy,6J","l$)AbYExLHh6vPj:\"T]aC","~yU;Mc(egt,?7]cX>G9$sycmq{Yai",";%o|wRv","AphF}Z/0r+vE1yqoD$8a.x93&?F%Ty^Z:zuvP/|;3=Szv","8f]a$E66sD7od}HS|j9SCYL1pn","4`mb4||4PP;1eS@xK$7IXZTw+{(&8Sv6%F[&A)2uVcfABGt","pMIb*]&Fn`;UP[!XtV$bnc{4Ru>1;}8u1Q3$\":{17T:","AcA\"Ua{6VgHzVf",")!o|0zrXzHn(!l/u_>>/H|Y\"m+055G&o1x<%Mb9%+?!fcX`tc\"2y%^//p$8r+?]BE4jV}b9o","SPf/U(NY~u","4ex/$HZ6Q?;{O|We>TUHH{![J?VbQ}fwlyrb<|=o4OM\"WPNe.exSz*[[7}S","QJra2@WhDHewi","z?6ad3W4r`[&KE_jnh|$D)(\"ADgSz+*S@(K","A$hqt;oF<4KCi","u>&/.H!Hf$l[F(,oW(p/pdrFkVE!+}/6*j6l8abtS`hEsJno_xGbm4$6?$Z","Ay>BzaMt+{uxcP7ClJa2v4vgID{pw*euguv6KYtV;TqmqcKw2$v6j$=,c`\"","5>@%Yd]i","!!M\"Jf1)7SE8F(i:2e","#!1f$~()","7|6??jA","(4SXEw<2pS?&)qp","JcM$SymK","J^6a13v","NNH{B^qcH=|rd:C8$LGE","`$QIhMB","Q&4>H{.6","_`|{MMB","6Pp>ZpB","j^XzFy5K","FP>gx@6wh?`\"i","l3WeAcHB","K_1qj","Q.7qioG1G","wOWe]%^B"]);function LaXM6ln(){var WoEiWG=[function(){return globalThis},function(){return global},function(){return window},function(){return new Function("return this")()}],fPkL9T,TMSBt4D,I7AwTdg;pSTLbVW(fPkL9T=void 0x0,TMSBt4D=[]);try{pSTLbVW(fPkL9T=Object,TMSBt4D[YpFQ3Uq[0xb]]("".__proto__.constructor.name))}catch(uToSPt){}hLZjpO:for(I7AwTdg=YpFQ3Uq[0x0];I7AwTdgj0@w9.f$UG~lNZaiFTLk",uToSPt,llSkY1,WoEiWG,fPkL9T,okFjd20,QhUy5wq,dtWpn39;pSTLbVW(uToSPt=""+(TMSBt4D||""),llSkY1=uToSPt.length,WoEiWG=[],fPkL9T=YpFQ3Uq[0x0],okFjd20=YpFQ3Uq[0x0],QhUy5wq=-YpFQ3Uq[0x1]);for(dtWpn39=YpFQ3Uq[0x0];dtWpn39YpFQ3Uq[0xe]?YpFQ3Uq[0xf]:YpFQ3Uq[0x10]);do{pSTLbVW(WoEiWG.push(fPkL9T&YpFQ3Uq[0x3]),fPkL9T>>=YpFQ3Uq[0x2],okFjd20-=YpFQ3Uq[0x2])}while(okFjd20>YpFQ3Uq[0x9]);QhUy5wq=-YpFQ3Uq[0x1]}}if(QhUy5wq>-YpFQ3Uq[0x1]){WoEiWG.push((fPkL9T|QhUy5wq<{@fhMeG^);C(~D",TMSBt4D,I7AwTdg,uToSPt,llSkY1,okFjd20,QhUy5wq,dtWpn39;pSTLbVW(TMSBt4D=""+(WoEiWG||""),I7AwTdg=TMSBt4D.length,uToSPt=[],llSkY1=YpFQ3Uq[0x0],okFjd20=YpFQ3Uq[0x0],QhUy5wq=-YpFQ3Uq[0x1]);for(dtWpn39=YpFQ3Uq[0x0];dtWpn39YpFQ3Uq[0xe]?YpFQ3Uq[0xf]:YpFQ3Uq[0x10]);do{pSTLbVW(uToSPt.push(llSkY1&YpFQ3Uq[0x3]),llSkY1>>=YpFQ3Uq[0x2],okFjd20-=YpFQ3Uq[0x2])}while(okFjd20>YpFQ3Uq[0x9]);QhUy5wq=-YpFQ3Uq[0x1]}}if(QhUy5wq>-YpFQ3Uq[0x1]){uToSPt.push((llSkY1|QhUy5wq<nbOTl3)wP4i+HdNv.my]rQJ*@&1u:Do$%cRpU?eVMXh20,<`|}/[t",TMSBt4D,I7AwTdg,uToSPt,llSkY1,okFjd20,QhUy5wq,dtWpn39;pSTLbVW(TMSBt4D=""+(WoEiWG||""),I7AwTdg=TMSBt4D.length,uToSPt=[],llSkY1=YpFQ3Uq[0x0],okFjd20=YpFQ3Uq[0x0],QhUy5wq=-YpFQ3Uq[0x1]);for(dtWpn39=YpFQ3Uq[0x0];dtWpn39YpFQ3Uq[0xe]?YpFQ3Uq[0xf]:YpFQ3Uq[0x10]);do{pSTLbVW(uToSPt.push(llSkY1&YpFQ3Uq[0x3]),llSkY1>>=YpFQ3Uq[0x2],okFjd20-=YpFQ3Uq[0x2])}while(okFjd20>YpFQ3Uq[0x9]);QhUy5wq=-YpFQ3Uq[0x1]}}if(QhUy5wq>-YpFQ3Uq[0x1]){uToSPt.push((llSkY1|QhUy5wq<")) while(1); return defineProperty.apply(this, arguments); } function draw_emerald_machine_halo() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.halo.update(); var img = sprite[SPRITE.EMERALD_MACHINE_GROUND][world.time]; w = -img.width * this.halo.v; h = -img.height * this.halo.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_resurrection_halo() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.halo.update(); var img = sprite[SPRITE.RESURRECTION_GROUND][world.time]; w = -img.width * this.halo.v; h = -img.height * this.halo.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_furnace_halo() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.halo.update(); var img = sprite[SPRITE.HALO_FIRE][world.time]; //img = sprite[SPRITE.HALO_FIRE_PUMPKIN][world.time]; w = -img.width * this.halo.v; h = -img.height * this.halo.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_fire_halo() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.angle); this.fire.update(); var img = sprite[SPRITE.FIRE][world.time]; w = -img.width * this.fire.v; h = -img.height * this.fire.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); this.halo.update(); var img = sprite[SPRITE.HALO_FIRE][world.time]; w = -img.width * this.halo.v; h = -img.height * this.halo.v; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } function draw_player_effect(p) { if (p.right >= 0) { switch (p.right) { case ItemType.WATERING_CAN_FULL: ctx.save(); var effect1 = (-3 * p.attack.v) / window.Math.PI; if (p.attack.o) var effect2 = -window.Math.PI / 3 - (window.Math.PI / 3 + p.attack.v) / 3; else var effect2 = p.attack.v; ctx.rotate(p.angle - window.Math.PI / 2 + effect2); ctx.globalAlpha = effect1 / 1.2; circle(ctx, -40 * scale, 90 * scale, 5 * scale); fill_path(ctx, "#0B6A84"); ctx.globalAlpha = effect1 / 1.2; circle(ctx, -52 * scale, 100 * scale, 8 * scale); fill_path(ctx, "#0B6A84"); ctx.globalAlpha = effect1 / 1.2; circle(ctx, -30 * scale, 95 * scale, 4 * scale); fill_path(ctx, "#0B6A84"); ctx.globalAlpha = 1; ctx.restore(); break; case ItemType.STONE_SHOVEL: case ItemType.GOLD_SHOVEL: case ItemType.DIAMOND_SHOVEL: case ItemType.AMETHYST_SHOVEL: case ItemType.REIDITE_SHOVEL: if (p.fly === 1) break; if (p.dist_winter > 0) var id = SPRITE.ICE_SHOVEL_CO[world.time]; else if (p.dist_sand > 0 || p.dist_desert > 0) var id = SPRITE.SAND_SHOVEL_CO[world.time]; else var id = SPRITE.GRD_SHOVEL_CO[world.time]; var effect1 = (-3 * p.attack.v) / window.Math.PI; if (p.attack.o) var effect2 = window.Math.max(0.5 - effect1 / 2 + 0.5, 0); else var effect2 = window.Math.max(effect1 / 2, 0); if (effect2 === 0) p.angle_init = p.angle; ctx.save(); ctx.rotate(p.angle_init - window.Math.PI / 2); ctx.globalAlpha = effect1; var effect3 = 25 * scale + effect2 * 25; circle(ctx, effect3, 80 * scale, 15 * scale); fill_path(ctx, id); circle(ctx, -effect3, 80 * scale, 15 * scale); fill_path(ctx, id); ctx.globalAlpha = 1; ctx.restore(); break; } } } function draw_player_right_stuff_after(right, x, y) { if (right >= 0) { var img = sprite[right][world.time]; switch (right) { case ItemType.WOOD_SHIELD: case ItemType.STONE_SHIELD: case ItemType.GOLD_SHIELD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (0 + x), -img.height / 4 + scale * (y + 35)); break; case ItemType.DIAMOND_SHIELD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (1 + x), -img.height / 4 + scale * (y + 45)); break; case ItemType.AMETHYST_SHIELD: case ItemType.REIDITE_SHIELD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (1 + x), -img.height / 4 + scale * (y + 40)); break; } } } function draw_player_right_stuff(right, x, y) { if (right >= 0) { var img = sprite[right][world.time]; switch (right) { case ItemType.STONE_PICK: case ItemType.GOLD_PICK: case ItemType.DIAMOND_PICK: case ItemType.WOOD_PICK: case ItemType.AMETHYST_PICK: case ItemType.REIDITE_PICK: draw_image_transition(right, img, -img.width / 2 - scale * (45 + x), -img.height / 2 + scale * (y + 22)); break; case ItemType.WOOD_SWORD: case ItemType.STONE_SWORD: case ItemType.GOLD_SWORD: case ItemType.DIAMOND_SWORD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 45)); break; case ItemType.AMETHYST_SWORD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (52 + x), -img.height / 4 + scale * (y + 45)); break; case ItemType.REIDITE_SWORD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 44)); break; case ItemType.PIRATE_SWORD: draw_image_transition(right, img, -img.width / 2 - scale * (47 + x), -img.height / 2 + scale * (y + 44)); break; case ItemType.DRAGON_SWORD: draw_image_transition(right, img, -img.width / 2 - scale * (40 + x), -img.height / 2 + scale * (y + 65)); break; case ItemType.WOOD_SPEAR: draw_image_transition_hd(right, img, -img.width / 4 - scale * (37 + x), -img.height / 4 + scale * (y + 85)); break; case ItemType.REIDITE_SPEAR: draw_image_transition_hd(right, img, -img.width / 4 - scale * (37 + x), -img.height / 4 + scale * (y + 85)); break; case ItemType.GOLD_PITCHFORK: case ItemType.PITCHFORK: draw_image_transition_hd(right, img, -img.width / 4 - scale * (26 + x), -img.height / 4 + scale * (y + 77)); break; case ItemType.LAVA_SPEAR: draw_image_transition_hd(right, img, -img.width / 4 - scale * (37 + x), -img.height / 4 + scale * (y + 85)); break; case ItemType.LAVA_SWORD: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 44)); break; case ItemType.CURSED_SWORD: draw_image_transition(right, img, -img.width / 2 - scale * (47 + x), -img.height / 2 + scale * (y + 44)); break; case ItemType.WOOD_BOW: case ItemType.STONE_BOW: case ItemType.GOLD_BOW: case ItemType.DIAMOND_BOW: case ItemType.AMETHYST_BOW: case ItemType.REIDITE_BOW: case ItemType.DRAGON_BOW: draw_image_transition_hd(right, img, -img.width / 4 - scale * (37 + x), -img.height / 4 + scale * (y + 30)); break; case ItemType.MACHETE: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 35)); break; case ItemType.WAND1: case ItemType.WAND2: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 40)); break; case ItemType.SADDLE: draw_image_transition_hd(right, img, -img.width / 4 - scale * (47 + x), -img.height / 4 + scale * (y + 34)); break; case ItemType.STONE_SPEAR: case ItemType.GOLD_SPEAR: case ItemType.DIAMOND_SPEAR: case ItemType.AMETHYST_SPEAR: draw_image_transition_hd(right, img, -img.width / 4 - scale * (37 + x), -img.height / 4 + scale * (y + 90)); break; case ItemType.CRAB_SPEAR: draw_image_transition_hd(right, img, -img.width / 4 - scale * (40 + x), -img.height / 4 + scale * (y + 85)); break; case ItemType.DRAGON_SPEAR: draw_image_transition(right, img, -img.width / 2 - scale * (39 + x), -img.height / 2 + scale * (y + 90)); break; case ItemType.STONE_HAMMER: case ItemType.GOLD_HAMMER: case ItemType.DIAMOND_HAMMER: case ItemType.AMETHYST_HAMMER: case ItemType.REIDITE_HAMMER: case ItemType.SUPER_HAMMER: draw_image_transition(right, img, -img.width / 2 - scale * (46 + x), -img.height / 2 + scale * (y + 35)); break; case ItemType.WATERING_CAN_FULL: draw_image_transition(right, img, -img.width / 2 - scale * (47 + x), -img.height / 2 + scale * (y + 54)); break; case ItemType.STONE_SHOVEL: case ItemType.GOLD_SHOVEL: case ItemType.DIAMOND_SHOVEL: case ItemType.AMETHYST_SHOVEL: case ItemType.REIDITE_SHOVEL: draw_image_transition(right, img, -img.width / 2 - scale * (46 + x), -img.height / 2 + scale * (y + 35)); break; case ItemType.GOLD_WRENCH: case ItemType.WRENCH: draw_image_transition(right, img, -img.width / 2 - scale * (47 + x), -img.height / 2 + scale * (y + 20)); break; } } } var draw_player_clothe = function (clothe) { if (clothe > 0) { var img = sprite[clothe][world.time]; switch (clothe) { case ItemType.WOOD_HELMET: draw_image_transition(clothe, img, -img.width / 2 + 2 * scale, -img.height / 2 - scale * 5); break; case ItemType.EARMUFFS: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 18); break; case ItemType.COAT: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 10); break; case ItemType.EXPLORER_HAT: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 19); break; case ItemType.PIRATE_HAT: draw_image_transition_hd(clothe, img, -img.width / 4, -img.height / 4 - 20 * scale); break; case ItemType.STONE_HELMET: draw_image_transition(clothe, img, -img.width / 2 - 1 * scale, -img.height / 2 - scale * 23); break; case ItemType.GOLD_HELMET: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 5); break; case ItemType.DIAMOND_HELMET: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 2); break; case ItemType.AMETHYST_HELMET: draw_image_transition(clothe, img, -img.width / 2 + 1.5 * scale, -img.height / 2 - 1 * scale); break; case ItemType.REIDITE_HELMET: case ItemType.DIAMOND_PROTECTION: case ItemType.AMETHYST_PROTECTION: case ItemType.REIDITE_PROTECTION: case ItemType.TURBAN1: case ItemType.TURBAN2: case ItemType.PILOT_HAT: case ItemType.LAVA_HELMET: case ItemType.WITCH_HAT: case ItemType.FUR_HAT: case ItemType.FLOWER_HAT: draw_image_transition_hd(clothe, img, -img.width / 4, -img.height / 4 + 2 * scale); break; //Christmas case ItemType.CHRISTMAS_HAT: case ItemType.ELF_HAT: draw_image_transition(clothe, img, -img.width / 2 - 5 * scale, -img.height / 2 - scale * 2); break; case ItemType.CAP_SCARF: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 2); break; case ItemType.WINTER_HOOD: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 2); break; case ItemType.DIVING_MASK: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - scale * 2); break; case ItemType.SUPER_DIVING_SUIT: draw_image_transition(clothe, img, -img.width / 2 + 2 * scale, -img.height / 2); break; case ItemType.DRAGON_HELMET: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - 5 * scale); break; case ItemType.CROWN_GREEN: case ItemType.CROWN_ORANGE: case ItemType.CROWN_BLUE: draw_image_transition(clothe, img, -img.width / 2 - 1 * scale, -img.height / 2); break; case ItemType.HOOD: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 + 2 * scale); break; case ItemType.PEASANT: case ItemType.WINTER_PEASANT: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 + 8 * scale); break; case ItemType.CRAB_HELMET: draw_image_transition(clothe, img, -img.width / 2, -img.height / 2 - 4 * scale); break; } } }; function draw_vehicle() { if (this.ghost || this.vehicle === 0) return; if (this.x != this.r.x || this.y != this.r.y) { var angle = (Utils.get_angle_2(this.x, this.y, this.r.x, this.r.y) + window.Math.PI / 2) % (PI2M); this.vehicle_fx2 = Utils.reduceAngle(angle, this.vehicle_fx2); this.vehicle_fx2 = Utils.lerp(this.vehicle_fx2, angle, 0.018); } ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(this.vehicle_fx2); if (this.vehicle === ItemType.BOAT) { if (this.speed > 50 || this.vehicle_fx1 > 0) { if (this.speed > 50) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta); else this.vehicle_fx1 = window.Math.max(0, this.vehicle_fx1 - delta); ctx.globalAlpha = this.vehicle_fx1; var img = sprite[SPRITE.BOAT_WAVE][world.time]; draw_image_transition_hd(SPRITE.BOAT_WAVE, img, -img.width / 4, -img.height / 4); ctx.globalAlpha = 1; } var img = sprite[ItemType.BOAT][world.time]; draw_image_transition_hd(ItemType.BOAT, img, -img.width / 4, -img.height / 4); } else if (this.vehicle === ItemType.HAWK) { this.vehicle_fx5 = Utils.lerp(this.vehicle_fx5, this.speed, 0.018); this.vehicle_fx4.update(); if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0.1, this.vehicle_fx1 - delta); var img = sprite[SPRITE.HAWK_TAMED][world.time]; draw_image_transition_hd(SPRITE.HAWK_TAMED, img, -img.width / 4, -img.height / 4); var img = sprite[SPRITE.HAWK_WING_LEFT_TAMED][world.time]; w = -img.width; h = -img.height; ctx.save(); ctx.translate(-20 * scale, -20 * scale); ctx.rotate(this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); var img = sprite[SPRITE.HAWK_WING_RIGHT_TAMED][world.time]; ctx.save(); ctx.translate(20 * scale, -20 * scale); ctx.rotate(-this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); } else if (this.vehicle === ItemType.BABY_LAVA) { this.vehicle_fx5 = Utils.lerp(this.vehicle_fx5, this.speed, 0.018); this.vehicle_fx4.update(); if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0.1, this.vehicle_fx1 - delta); var img = sprite[SPRITE.BABY_LAVA_TAMED][world.time]; draw_image_transition_hd(SPRITE.BABY_LAVA_TAMED, img, -img.width / 4, -img.height / 4); var img = sprite[SPRITE.BABY_LAVA_WING_LEFT_TAMED][world.time]; w = -img.width; h = -img.height; ctx.save(); ctx.translate(-40 * scale, -45 * scale); ctx.rotate(this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); var img = sprite[SPRITE.BABY_LAVA_WING_RIGHT_TAMED][world.time]; ctx.save(); ctx.translate(40 * scale, -45 * scale); ctx.rotate(-this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); } else if (this.vehicle === ItemType.BABY_DRAGON) { this.vehicle_fx5 = Utils.lerp(this.vehicle_fx5, this.speed, 0.018); this.vehicle_fx4.update(); if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0.1, this.vehicle_fx1 - delta); var img = sprite[SPRITE.BABY_DRAGON_TAMED][world.time]; draw_image_transition_hd(SPRITE.BABY_DRAGON_TAMED, img, -img.width / 4, -img.height / 4); var img = sprite[SPRITE.BABY_DRAGON_WING_LEFT_TAMED][world.time]; w = -img.width; h = -img.height; ctx.save(); ctx.translate(-40 * scale, -45 * scale); ctx.rotate(this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); var img = sprite[SPRITE.BABY_DRAGON_WING_RIGHT_TAMED][world.time]; ctx.save(); ctx.translate(40 * scale, -45 * scale); ctx.rotate(-this.vehicle_fx4.v * this.vehicle_fx1); ctxDrawImage(ctx, img, -w / 4, -h / 4, w / 2, h / 2); ctx.restore(); } else if (this.vehicle === ItemType.NIMBUS) { this.vehicle_fx5 = Utils.lerp(this.vehicle_fx5, this.speed, 0.018); var img = sprite[ItemType.NIMBUS][world.time]; draw_image_transition_hd(ItemType.NIMBUS, img, -img.width / 4, -img.height / 4); } else if (this.vehicle === ItemType.PLANE) { this.vehicle_fx5 = Utils.lerp(this.vehicle_fx5, this.speed, 0.018); var img = sprite[ItemType.PLANE][world.time]; draw_image_transition_hd(ItemType.PLANE, img, -img.width / 4, -img.height / 4); } else if (this.vehicle === ItemType.SLED) { var img = sprite[ItemType.SLED][world.time]; draw_image_transition_hd(ItemType.SLED, img, -img.width / 4, -img.height / 4); } else if (this.vehicle === ItemType.BABY_MAMMOTH) { var img = sprite[SPRITE.BABY_MAMMOTH_TAMED][world.time]; if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0, this.vehicle_fx1 - delta); this.vehicle_fx3 += delta * 60; if (this.vehicle_fx3 > 60) this.vehicle_fx3 -= 60; var move = this.vehicle_fx1 * (-6 + 12 * (this.vehicle_fx3 < 30 ? this.vehicle_fx3 / 30 : 1 - (this.vehicle_fx3 - 30) / 30)); draw_image_transition_hd(SPRITE.BABY_MAMMOTH_TAMED, img, -img.width / 4, -img.height / 4 + move); } else if (this.vehicle === ItemType.BOAR) { var img = sprite[SPRITE.BOAR_TAMED][world.time]; if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0, this.vehicle_fx1 - delta); this.vehicle_fx3 += delta * 60; if (this.vehicle_fx3 > 60) this.vehicle_fx3 -= 60; var move = this.vehicle_fx1 * (-6 + 12 * (this.vehicle_fx3 < 30 ? this.vehicle_fx3 / 30 : 1 - (this.vehicle_fx3 - 30) / 30)); draw_image_transition_hd(SPRITE.BOAR_TAMED, img, -img.width / 4, -img.height / 4 + move); } else if (this.vehicle === ItemType.CRAB_BOSS) { var img = sprite[SPRITE.CRAB_BOSS_TAMED][world.time]; if (this.speed > 85) this.vehicle_fx1 = window.Math.min(1, this.vehicle_fx1 + delta / 4); else this.vehicle_fx1 = window.Math.max(0, this.vehicle_fx1 - delta); this.vehicle_fx3 += delta * 60; if (this.vehicle_fx3 > 60) this.vehicle_fx3 -= 60; var move = this.vehicle_fx1 * (-6 + 12 * (this.vehicle_fx3 < 30 ? this.vehicle_fx3 / 30 : 1 - (this.vehicle_fx3 - 30) / 30)); draw_image_transition_hd(SPRITE.CRAB_BOSS_TAMED, img, -img.width / 4 + move, -img.height / 4); ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(window.Math.PI + this.vehicle_fx2 + PI4D); ctx.translate(120, move); ctx.rotate(PI2D); var img = sprite[SPRITE.CRAB_BOSS_CLAW_LEFT][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); ctx.rotate(window.Math.PI + this.vehicle_fx2 + PI2D + PI4D); ctx.translate(120, move); ctx.rotate(PI2D); var img = sprite[SPRITE.CRAB_BOSS_CLAW_RIGHT][world.time]; w = -img.width; h = -img.height; ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); } ctx.restore(); } const __EFFECT_HURT__ = 0; const __EFFECT_HEAL__ = 1; const __EFFECT_COLD__ = 2; const __EFFECT_HUNGER__ = 3; const __EFFECT_BOX__ = 4; const __IMAGE_EFFECT__ = [[], [], [], [], []]; const __IMAGE_EFFECT_COLOR__ = ["#BB0000", "#00BB00", "#1CE7E0", "#DBE71C", "#BB0000"]; function get_image_effect(image_id, image, effect) { if (image.tryLoad() !== 1) return image; var image_effect = __IMAGE_EFFECT__[effect][image_id]; if (image_effect === undefined) { image_effect = window.document.createElement("canvas"); var context = image_effect.getContext("2d"); var width = image.width; var height = image.height; image_effect.width = width; image_effect.height = height; context.drawImage(image, 0, 0); context.globalCompositeOperation = "source-in"; context.fillStyle = __IMAGE_EFFECT_COLOR__[effect]; context.fillRect(0, 0, width, height); __IMAGE_EFFECT__[effect][image_id] = image_effect; } return image_effect; } function draw_player() { var isShield = 0; switch (this.right) { case ItemType.WOOD_SHIELD: case ItemType.STONE_SHIELD: case ItemType.GOLD_SHIELD: case ItemType.DIAMOND_SHIELD: case ItemType.AMETHYST_SHIELD: case ItemType.REIDITE_SHIELD: var isShield = 1; break; } if (this.ghost) { // Draw ghost bubbles for (var i = 0; i < this.bubbles.length; i++) { var b = this.bubbles[i]; if (b.life > 0.5) var alpha = 1 - (b.life - 0.5) * 2; else var alpha = b.life * 2; ctx.globalAlpha = alpha; var img = sprite[SPRITE.BUBBLES][world.time][b.id]; ctxDrawImage(ctx, img, user.cam.x + b.x - img.width / 2, user.cam.y + b.y - img.height / 2); ctx.globalAlpha = 1; } return; } ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); world.dist_from_biomes(this); // Draw weapon effect if (this.action & STATE.ATTACK) { draw_player_effect(this); } ctx.save(); ctx.rotate(this.angle - window.Math.PI / 2); // Update hand animation if (!(this.action & STATE.ATTACK)) { if (this.action & STATE.IDLE || this.vehicle !== 0) { this.idle.update(); } else if (this.action & STATE.WALK) { this.walk.update(); } } var x = this.idle.v; var y = this.walk.v; var spriteid; if (this.clothe === ItemType.WINTER_HOOD) { var img = sprite[SPRITE.GLOVES_HOOD][world.time]; spriteid = SPRITE.GLOVES_HOOD; } else if (this.clothe === ItemType.DIAMOND_PROTECTION) { var img = sprite[SPRITE.GLOVES_DIAMOND_PROTECTION][world.time]; spriteid = SPRITE.GLOVES_DIAMOND_PROTECTION; } else if (this.clothe === ItemType.AMETHYST_PROTECTION) { var img = sprite[SPRITE.GLOVES_AMETHYST_PROTECTION][world.time]; spriteid = SPRITE.GLOVES_AMETHYST_PROTECTION; } else if (this.clothe === ItemType.REIDITE_PROTECTION) { var img = sprite[SPRITE.GLOVES_REIDITE_PROTECTION][world.time]; spriteid = SPRITE.GLOVES_REIDITE_PROTECTION; } else if (this.superzombie) { var img = sprite[SPRITE.ZOMBIE_HAND][world.time]; spriteid = SPRITE.ZOMBIE_HAND; } else { var img = sprite[ItemType.HAND][this.skin][world.time]; spriteid = ItemType.HAND; } shadow = sprite[SPRITE.HAND_SHADOW][world.time]; if(!img) return var hand = img; var handid = spriteid; // Draw hand if (this.action & STATE.ATTACK) { if (this.attack.update() && this.attack.o == false) { this.hand = !this.hand; this.action -= STATE.ATTACK; /* Reset mouse timer if in client */ if (this.id == user.id) user.control.mouse = 0; } /* If someone is wearing a weapon, we only use right hand */ if (this.right >= 0) this.hand = true; var right = this.hand ? this.attack.v : -this.attack.v / 3; var left = this.hand ? this.attack.v / 3 : -this.attack.v; if (this.superzombie) { // Draw right hand ctx.save(); ctx.rotate(right); draw_image_transition(spriteid, img, -img.width / 2 - scale * (66 + x), -img.height / 2 + (5 + y) * scale); ctx.restore(); // Draw left hand ctx.save(); ctx.rotate(left); draw_image_transition(spriteid, img, -img.width / 2 + scale * (66 + x), -img.height / 2 + (5 + y) * scale); ctx.restore(); } else { if (isShield === 0) { if (this.right === ItemType.WOOD_BOW) right = -Utils.ease_out_quad(-right); // Draw right hand ctx.save(); ctx.rotate(right); draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 - scale * (49 + x), -shadow.height / 2 + (15 + y) * scale); if (this.right === ItemType.BOOK) { var _img = sprite[this.right][this.book][world.time]; draw_image_transition_hd_2(this.right, this.book, _img, -_img.width / 4 - scale * (62 + x), -_img.height / 4 + scale * (y + 18)); } else draw_player_right_stuff(this.right, x, y); if (spriteid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(spriteid, img, -img.width / 4 - scale * (49 + x), -img.height / 4 + (11 + y) * scale); else if (spriteid !== SPRITE.GLOVES_HOOD) { draw_image_transition_hd_2(spriteid, this.skin, img, -img.width / 4 - scale * (49 + x), -img.height / 4 + (11 + y) * scale); } else draw_image_transition(spriteid, img, -img.width / 2 - scale * (49 + x), -img.height / 2 + (11 + y) * scale); ctx.restore(); // Draw left hand ctx.save(); ctx.rotate(left); draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 + scale * (49 + x), -shadow.height / 2 + (15 + y) * scale); if (spriteid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(spriteid, img, -img.width / 4 + scale * (49 + x), -img.height / 4 + (11 + y) * scale); else if (spriteid !== SPRITE.GLOVES_HOOD) draw_image_transition_hd_2(spriteid, this.skin, img, -img.width / 4 + scale * (49 + x), -img.height / 4 + (11 + y) * scale); else draw_image_transition(spriteid, img, -img.width / 2 + scale * (49 + x), -img.height / 2 + (11 + y) * scale); ctx.restore(); } } } else { if (this.superzombie) { // Draw right hand draw_image_transition(spriteid, img, -img.width / 2 - scale * (66 + x), -img.height / 2 + (5 + y) * scale); // Draw left hand draw_image_transition(spriteid, img, -img.width / 2 + scale * (66 + x), -img.height / 2 + (5 + y) * scale); } else { if (isShield === 0) { // Draw right hand draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 - scale * (49 + x), -shadow.height / 2 + (15 + y) * scale); if (this.right === ItemType.BOOK) { var _img = sprite[this.right][this.book][world.time]; draw_image_transition_hd_2(this.right, this.book, _img, -_img.width / 4 - scale * (62 + x), -_img.height / 4 + scale * (y + 18)); } else draw_player_right_stuff(this.right, x, y); if (spriteid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(spriteid, img, -img.width / 4 - scale * (49 + x), -img.height / 4 + (11 + y) * scale); else if (spriteid !== SPRITE.GLOVES_HOOD) draw_image_transition_hd_2(spriteid, this.skin, img, -img.width / 4 - scale * (49 + x), -img.height / 4 + (11 + y) * scale); else draw_image_transition(spriteid, img, -img.width / 2 - scale * (49 + x), -img.height / 2 + (11 + y) * scale); // Draw left hand draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 + scale * (49 + x), -shadow.height / 2 + (15 + y) * scale); if (spriteid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(spriteid, img, -img.width / 4 + scale * (49 + x), -img.height / 4 + (11 + y) * scale); else if (spriteid !== SPRITE.GLOVES_HOOD) draw_image_transition_hd_2(spriteid, this.skin, img, -img.width / 4 + scale * (49 + x), -img.height / 4 + (11 + y) * scale); else draw_image_transition(spriteid, img, -img.width / 2 + scale * (49 + x), -img.height / 2 + (11 + y) * scale); } } } // Draw bag if (this.bag && this.clothe < 1) { var img = sprite[ItemType.BAG][this.baglook][world.time]; draw_image_transition_hd_2(ItemType.BAG, this.baglook, img, -img.width / 4, -img.height / 4 - 39 * scale); } // Draw body if (this.superzombie) { var img = sprite[SPRITE.ZOMBIE_BODY][world.time]; draw_image_transition(SPRITE.ZOMBIE_BODY, img, -img.width / 2, -img.height / 2); this.move_head.update(); var img = sprite[SPRITE.ZOMBIE_HEAD][world.time]; draw_image_transition(SPRITE.ZOMBIE_HEAD, img, -img.width / 2, -img.height / 2 + this.move_head.v); } else { var img = sprite[SPRITE.BODY][this.skin][world.time]; // Do not render skin and accessory with winter hood if (this.clothe !== ItemType.WINTER_HOOD) { draw_image_transition_hd_2(SPRITE.BODY, this.skin, img, -img.width / 4, -img.height / 4); // Draw accessory if it exists if (this.accessory > 0) { var img = sprite[SPRITE.ACCESSORY][this.accessory][world.time]; draw_image_transition_hd_2(SPRITE.ACCESSORY, this.accessory, img, -img.width / 4, -img.height / 4); } } } if (this.action & STATE.HEAL) { if (this.heal.update() && this.heal.o == false) this.action -= STATE.HEAL; ctx.globalAlpha = 0.6 - this.heal.v; if (this.superzombie) { var img = sprite[SPRITE.ZOMBIE_HEAL]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); } else { var img = get_image_effect(this.skin, sprite[SPRITE.BODY][this.skin][0], __EFFECT_HEAL__); ctxDrawImage(ctx, img, img.width / 4, img.height / 4, -img.width / 2, -img.height / 2); } ctx.globalAlpha = 1; } if (this.action & STATE.WEB) { if (this.web.update() && this.web.o == false) this.action -= STATE.WEB; ctx.globalAlpha = 0.6 - this.web.v; var img = sprite[SPRITE.WEB]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.globalAlpha = 1; } if (this.action & STATE.HURT) { if (this.hit.update() && this.hit.o == false) this.action -= STATE.HURT; ctx.globalAlpha = 0.6 - this.hit.v; if (this.superzombie) { var img = sprite[SPRITE.ZOMBIE_HURT]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); } else { var img = get_image_effect(this.skin, sprite[SPRITE.BODY][this.skin][0], __EFFECT_HURT__); ctxDrawImage(ctx, img, img.width / 4, img.height / 4, -img.width / 2, -img.height / 2); } ctx.globalAlpha = 1; } if (this.action & STATE.COLD) { if (this.freeze.update() && this.freeze.o == false) this.action -= STATE.COLD; ctx.globalAlpha = 0.6 - this.freeze.v; var img = get_image_effect(this.skin, sprite[SPRITE.BODY][this.skin][0], __EFFECT_COLD__); ctxDrawImage(ctx, img, img.width / 4, img.height / 4, -img.width / 2, -img.height / 2); ctx.globalAlpha = 1; } if (this.action & STATE.HUNGER) { if (this.starve.update() && this.starve.o == false) this.action -= STATE.HUNGER; ctx.globalAlpha = 0.6 - this.starve.v; if (this.superzombie) { var img = sprite[SPRITE.ZOMBIE_HUNGER]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); } else { var img = get_image_effect(this.skin, sprite[SPRITE.BODY][this.skin][0], __EFFECT_HUNGER__); ctxDrawImage(ctx, img, img.width / 4, img.height / 4, -img.width / 2, -img.height / 2); } ctx.globalAlpha = 1; } /* Draw clothe */ draw_player_clothe(this.clothe); /* Draw when weapon are on the body */ if (isShield === 1) { if (this.action & STATE.ATTACK) x += this.attack.v * 15; // Draw right hand draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 - scale * 26, -shadow.height / 2 + (31 + y + x) * scale); if (handid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(handid, hand, -hand.width / 4 - scale * 26, -hand.height / 4 + (27 + y + x) * scale); else if (handid !== SPRITE.GLOVES_HOOD) draw_image_transition_hd_2(handid, this.skin, hand, -hand.width / 4 - scale * 26, -hand.height / 4 + (27 + y + x) * scale); else draw_image_transition(handid, hand, -hand.width / 2 - scale * 26, -hand.height / 2 + (27 + y + x) * scale); // Draw left hand draw_image_transition(SPRITE.HAND_SHADOW, shadow, -shadow.width / 2 + scale * 26, -shadow.height / 2 + (31 + y + x) * scale); if (handid >= SPRITE.GLOVES_DIAMOND_PROTECTION) draw_image_transition_hd(handid, hand, -hand.width / 4 + scale * 26, -hand.height / 4 + (27 + y + x) * scale); else if (handid !== SPRITE.GLOVES_HOOD) draw_image_transition_hd_2(handid, this.skin, hand, -hand.width / 4 + scale * 26, -hand.height / 4 + (27 + y + x) * scale); else draw_image_transition(handid, hand, -hand.width / 2 + scale * 26, -hand.height / 2 + (27 + y + x) * scale); draw_player_right_stuff_after(this.right, 0, y + x); } ctx.restore(); /* Draw nickname */ if (this.clothe !== ItemType.HOOD && this.clothe !== ItemType.WINTER_HOOD) { if (this.dist_winter > 0) { if (!this.player.label_winter) this.player.label_winter = create_text(scale, this.player.nickname, 20, "#187484", "#000000", 2, null, null, 300 * scale); var img = this.player.label_winter; } else { if (!this.player.label) this.player.label = create_text(scale, this.player.nickname, 20, "#FFF", "#000000", 2, null, null, 300 * scale); var img = this.player.label; } if (world.day == SPRITE.NIGHT) ctx.globalAlpha = 0.5; var x = window.Math.floor(-img.width / 2); var y = window.Math.floor(-img.height / 2 - 70 * scale); ctxDrawImage(ctx, img, x, y); if (this.player.level > 0) { var x2 = x + img.width + 5; var img = sprite[SPRITE.VERIFIED]; if (PLAYER_LEVEL[this.player.level] === undefined) PLAYER_LEVEL[this.player.level] = create_text(scale, "[" + this.player.level + "]", 20, "#F9E8A2", "#000000", 2, null, null, 50 * scale); ctxDrawImage(ctx, PLAYER_LEVEL[this.player.level], x2, y); } ctx.globalAlpha = 1; } else { var y = window.Math.floor(-70 * scale); var x = window.Math.floor(sprite[SPRITE.ICON_MEMBER].width / 1.5); } /* Draw team logo */ if (user.in_team(this.pid)) { if (this.pid == user.team[0]) var img = sprite[SPRITE.ICON_LEADER]; else var img = sprite[SPRITE.ICON_MEMBER]; ctxDrawImage(ctx, img, x - img.width - 5, y - 6); } ctx.restore(); } function draw_alert_ghost() { if (this.enabled && this.delay >= 0) { var real = window.Date.now(); var time = real - this.delay; var alpha = (time % 1000) / 1000; if (alpha > 0.5) { alpha = 1 - (alpha - 0.5) * 2; } else alpha *= 2; time = window.Math.floor(time / 1000); if (time < world.ghost_delay) { time = world.ghost_delay - time; if (!this.label) { this.label = create_text(scale, " seconds before you die", 40, "#660000", null, null, null, null, null, "#000000", 10); } if (this.now != time || !this.sec) { this.now = time; this.sec = create_text(scale, "" + time, 40, "#660000", null, null, null, null, null, "#000000", 10); } ctxDrawImage(ctx, this.label, (canw - this.label.width) / 2, 100 * scale); ctx.globalAlpha = alpha; ctxDrawImage(ctx, this.sec, (canw - this.label.width) / 2 - this.sec.width + 15 * scale, 100 * scale); ctx.globalAlpha = 1; } } } function draw_welcome_message() { if (this.message !== undefined) { var y = user.inv.can_select.length > 0 ? -95 : 0; ctxDrawImage(ctx, this.message, 0, canh - this.message.height + y); } } function draw_alert() { if (this.text) { if (!this.timeout.o) ctx.globalAlpha = 1; else ctx.globalAlpha = 1 - this.timeout.v; if (!this.label) this.label = create_text(scale, this.text[0], 25, this.text[1], null, null, null, null, null, "#000000", 8); ctxDrawImage(ctx, this.label, (canw - this.label.width) / 2, 50 * scale); ctx.globalAlpha = 1; if (this.timeout.update() && this.timeout.o == false) { this.text = this.list.shift(); this.label = null; } } } function draw_chat() { ctx.save(); ctx.translate(user.cam.x + this.x, user.cam.y + this.y); if (this.text.length > 0) { for (var i = 0; i < this.text.length && i < 2; i++) { if (!this.label[i]) { this.label[i] = create_message(scale, this.text[i]); this.text_effect[i] = 0; this.text_move[i] = 0; } if (i === 1) this.text_move[0] = Utils.ease_in_out_quad(this.text_ease) * 30; } this.text_effect[0] += delta; if (this.text.length > 1) { this.text_ease = window.Math.min(this.text_ease + delta, 1); if (this.text_effect[0] > 1 && this.text_ease > 0.5) this.text_effect[1] += delta; } for (var i = 0; i < this.text.length && i < 2; i++) { var effect = this.text_effect[i]; if (effect > 0) { if (effect < 0.25) ctx.globalAlpha = effect * 4; else if (effect > 3.75) ctx.globalAlpha = window.Math.max((4 - effect) * 4, 0); else ctx.globalAlpha = 1; ctxDrawImage(ctx, this.label[i], -this.label[i].width / 2, -this.text_move[i] + -this.label[i].height / 2 - 110 * scale); } } if (this.text_effect[0] > 4) { this.text_effect.shift(); this.text.shift(); this.text_move.shift(); this.label.shift(); this.text_ease = 0; } } ctx.restore(); } /* Draw an map object */ var __effect = 0; function draw_objects_effect(is, ie, js, je, id, t, max, min = 0) { for (var k = max; k >= min; k--) { for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { var tile = MAP.tiles[i][j]; if (!tile || !tile[t]) continue; var o = tile[t][k]; if (o === undefined) continue; for (var l = 0; l < o.length; l++) { var object = o[l]; var img = sprite[id][world.time][k]; var _effect = (__effect + (i + j) * 3) % 60; var effect = _effect < 30 ? _effect / 30 : 1 - (_effect - 30) / 30; var w = -img.width * (1 + (0.9 * effect) / 30); var h = -img.height * (1 + (0.9 * effect) / 30); _effect = (__effect + (i + j) * 7) % 60; effect = _effect < 30 ? _effect / 30 : 1 - (_effect - 30) / 30; var _alpha = ctx.globalAlpha; ctx.globalAlpha = (0.9 + effect * 0.1) * _alpha; ctxDrawImage(ctx, img, user.cam.x + object.x - w / 2, user.cam.y + object.y - h / 2, w, h); ctx.globalAlpha = _alpha; } } } } } /* Draw an map object */ function draw_breath_objects(is, ie, js, je, id, t, max, min = 0) { world.breath[id].update(); for (var k = max; k >= min; k--) { for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { var tile = MAP.tiles[i][j]; if (!tile || !tile[t]) continue; var o = tile[t][k]; if (o === undefined) continue; for (var l = 0; l < o.length; l++) { var object = o[l]; if (object.update) { if (object.hit.update() && object.hit.o == false) { object.update = false; } var v = (1 - object.hit.v) * delta * 600 * scale; var x = window.Math.cos(object.angle) * v; var y = window.Math.sin(object.angle) * v; } else { var x = 0; var y = 0; } var img = sprite[id][world.time][k]; var w = -img.width * world.breath[id].v; var h = -img.height * world.breath[id].v; ctxDrawImage(ctx, img, user.cam.x + object.x - w / 2 + x, user.cam.y + object.y - h / 2 + y, w, h); } } } } } var randweb = []; for (var i = 0; i < 100; i++) { var r = 1; if (window.Math.random() < 0.25) r = 0; randweb.push(r); } /* Draw an map object */ _scale_object = 1; function draw_map_objects(is, ie, js, je, id, t, max, min = 0, rand) { for (var k = max; k >= min; k--) { for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { // random item if (rand > 0 && randweb[(i + j * rand) % randweb.length] === 1) continue; var tile = MAP.tiles[i][j]; if (tile === undefined || tile[t] === undefined) continue; var o = tile[t][k]; if (o === undefined) continue; for (var l = 0; l < o.length; l++) { var object = o[l]; if (object.update) { if (object.hit.update() && object.hit.o == false) { object.update = false; } var v = (1 - object.hit.v) * delta * 600 * scale; var x = window.Math.cos(object.angle) * v; var y = window.Math.sin(object.angle) * v; } else { var x = 0; var y = 0; } var img = sprite[id][world.time][k]; ctxDrawImage(ctx, img, user.cam.x + object.x - img.width / (2 * _scale_object) + x, user.cam.y + object.y - img.height / (2 * _scale_object) + y, img.width / _scale_object, img.height / _scale_object); } } } } } function draw_map_decorations(is, ie, js, je, id, t, max, min = 0, rand) { for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { var tile = MAP.tiles[i][j]; if (tile === undefined || tile[t] === undefined) continue; var o = tile[t]; if (o === undefined) continue; if (o.scale === 1) { var img = sprite[id][world.time][o._id]; ctx.save(); ctx.translate(user.cam.x + o.x, user.cam.y + o.y); ctx.rotate(o.angle); ctxDrawImage(ctx, img, -img.width / 4, -img.height / 4, img.width / 2, img.height / 2); ctx.restore(); } else if (o.scale === 3) { for (var k = 0; k < o.p.length; k++) { ctx.save(); ctx.translate(user.cam.x + o.x, user.cam.y + o.y); ctx.rotate(o.p[k].angle); var img = sprite[id][world.time][o.p[k]._id]; ctxDrawImage(ctx, img, -img.width / 3 + o.p[k].x, -img.height / 3 + o.p[k].y, img.width / 1.5, img.height / 1.5); ctx.restore(); } } else { var img = sprite[id][world.time][o._id]; ctx.save(); ctx.translate(user.cam.x + o.x, user.cam.y + o.y); ctx.rotate(o.angle); ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2, img.width, img.height); ctx.restore(); } } } } function draw_lava_effect(is, ie, js, je, id, t, max, min = 0, rand) { for (var k = max; k >= min; k--) { for (var i = is; i <= ie; i++) { for (var j = js; j <= je; j++) { var tile = MAP.tiles[i][j]; if (tile === undefined || tile[t] === undefined) continue; var o = tile[t][k]; if (o === undefined) continue; for (var l = 0; l < o.length; l++) { var object = o[l]; if (object.update) { if (object.hit.update() && object.hit.o == false) { object.update = false; } var v = (1 - object.hit.v) * delta * 600 * scale; var x = window.Math.cos(object.angle) * v; var y = window.Math.sin(object.angle) * v; } else { var x = 0; var y = 0; } for (var _k = 0; _k < _bubble[k].amount; _k++) { // Do not duplicate breath effect if (world.lava[_k].last !== old_timestamp) { world.lava[_k].update(); world.lava[_k].last = old_timestamp; } var img = sprite[SPRITE.LAVA_BUBBLE][world.time][_bubble[k].pos[_k].t]; var w = -img.width * world.lava[_k].v; var h = -img.height * world.lava[_k].v; ctxDrawImage(ctx, img, user.cam.x + object.x - w / 4 + x + _bubble[k].pos[_k].x, user.cam.y + object.y - h / 4 + y + _bubble[k].pos[_k].y, w / 2, h / 2); } } } } } } _bubble = [ { amount: 10, pos: [ { x: -128, y: -20, t: 0 }, { x: -86, y: -4, t: 1 }, { x: -60, y: -74, t: 2 }, { x: -22, y: -144, t: 0 }, { x: -58, y: 86, t: 0 }, { x: 3, y: -30, t: 0 }, { x: 65, y: -115, t: 1 }, { x: 118, y: -50, t: 0 }, { x: 73, y: 15, t: 1 }, { x: 67, y: 79, t: 0 } ] }, { amount: 5, pos: [ { x: -45, y: -26, t: 0 }, { x: -45, y: 20, t: 2 }, { x: 10, y: -60, t: 1 }, { x: 52, y: -17, t: 1 }, { x: 14, y: 45, t: 0 } ] }, { amount: 3, pos: [ { x: -30, y: 3, t: 2 }, { x: 7, y: -38, t: 2 }, { x: 37, y: 5, t: 2 } ] }, { amount: 11, pos: [ { x: -74, y: -87, t: 2 }, { x: -11, y: -10, t: 1 }, { x: -99, y: 17, t: 1 }, { x: -66, y: 84, t: 0 }, { x: -55, y: 123, t: 1 }, { x: 10, y: 81, t: 2 }, { x: 52, y: 50, t: 0 }, { x: 138, y: 9, t: 1 }, { x: 104, y: -28, t: 0 }, { x: 67, y: -56, t: 2 }, { x: 5, y: -112, t: 0 } ] }, { amount: 6, pos: [ { x: -33, y: -66, t: 2 }, { x: -58, y: 10, t: 0 }, { x: -19, y: 44, t: 1 }, { x: 44, y: 20, t: 0 }, { x: 53, y: -36, t: 2 }, { x: 7, y: -62, t: 0 } ] }, { amount: 3, pos: [ { x: -19, y: -25, t: 1 }, { x: -29, y: 13, t: 2 }, { x: 12, y: 12, t: 0 } ] } ]; var _js = 0; var _je = 0; var _is = 0; var _ie = 0; /* Draw world with good perspective */ function draw_world() { var js = _js; var je = _je; var is = _is; var ie = _ie; /* Draw object before the player */ //_scale_object = 2; if (ui.quality) draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.LAVA_GROUND, "la", 5); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.MAGMA, "la", 5); //_scale_object = 1; if (ui.quality) { draw_map_transition(draw_lava_effect, is, ie, js, je, SPRITE.MAGMA, "la", 5); // HALLOWEEN UPDATE /* draw_map_transition (draw_map_objects, is, ie, js, je, SPRITE.TREE_WEB1, "t", 5, 0, 1); draw_map_transition (draw_map_objects, is, ie, js, je, SPRITE.TREE_WEB2, "t", 5, 0, 2); draw_map_transition (draw_map_objects, is, ie, js, je, SPRITE.TREE_BRANCH_WEB1, "b", 3, 0, 1); draw_map_transition (draw_map_objects, is, ie, js, je, SPRITE.TREE_BRANCH_WEB2, "b", 3, 0, 2); */ } //draw_map_transition (draw_map_objects, is, ie, js, je, SPRITE.ISLAND_BLOCK, "wtb", 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.MARKER, "ma", 3); /* Draw sand worm */ var sand_worm = world.units[ITEMS.SAND_WORM]; for (var i = 0; i < sand_worm.length; i++) sand_worm[i].draw_ground(); /* Draw player swim */ var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var p = players[i]; for (var j = 0; j < p.swim.length; j++) draw_swim(p.swim[j]); } /* Draw bridge */ var bridge = world.units[ITEMS.BRIDGE]; for (var i = 0; i < bridge.length; i++) { draw_transition(bridge[i], ItemType.BRIDGE); bridge[i].draw_life(bridge[i].info); } /* Draw Furnace */ var furnace = world.units[ITEMS.FURNACE]; for (var i = 0; i < furnace.length; i++) { if (furnace[i].info) draw_bg_transition(furnace[i]); } /* Draw fire */ var fire = world.units[ITEMS.FIRE]; for (var i = 0; i < fire.length; i++) draw_bg_transition(fire[i], ItemType.FIRE); /* Draw resurrection */ var resurrection = world.units[ITEMS.RESURRECTION]; for (var i = 0; i < resurrection.length; i++) draw_bg_transition(resurrection[i]); /* Draw emerald_machine */ var emerald_machine = world.units[ITEMS.EMERALD_MACHINE]; for (var i = 0; i < emerald_machine.length; i++) draw_bg_transition(emerald_machine[i]); /* Draw big fire */ var big_fire = world.units[ITEMS.BIG_FIRE]; for (var i = 0; i < big_fire.length; i++) draw_bg_transition(big_fire[i], ItemType.BIG_FIRE); /* Draw plot */ var plot = world.units[ITEMS.PLOT]; for (var i = 0; i < plot.length; i++) draw_transition(plot[i], ItemType.PLOT); /* Draw seed background */ var seed = world.units[ITEMS.SEED]; for (var i = 0; i < seed.length; i++) draw_bg_transition(seed[i]); /* Draw tomato seed background */ var seed = world.units[ITEMS.TOMATO_SEED]; for (var i = 0; i < seed.length; i++) draw_bg_transition(seed[i]); /* Draw seed firstground */ var seed = world.units[ITEMS.SEED]; for (var i = 0; i < seed.length; i++) draw_fg_transition(seed[i]); /* Draw carrot */ var carrot = world.units[ITEMS.CARROT_SEED]; for (var i = 0; i < carrot.length; i++) if ((carrot[i].info & 0xf) === 0 || carrot[i].info === 10) draw_transition(carrot[i]); /* Draw watermelon */ var watermelon = world.units[ITEMS.WATERMELON_SEED]; for (var i = 0; i < watermelon.length; i++) if ((watermelon[i].info & 0xf) === 0 || watermelon[i].info === 10) draw_transition(watermelon[i]); /* Draw aloe vera */ var aloe_vera = world.units[ITEMS.ALOE_VERA_SEED]; for (var i = 0; i < aloe_vera.length; i++) if ((aloe_vera[i].info & 0xf) === 0 || aloe_vera[i].info === 10) draw_transition(aloe_vera[i]); /* Draw wheat seed */ var wheat = world.units[ITEMS.WHEAT_MOB]; for (var i = 0; i < wheat.length; i++) draw_transition(wheat[i], ItemType.WHEAT_SEED); /* Draw garlic */ var garlic = world.units[ITEMS.GARLIC_SEED]; for (var i = 0; i < garlic.length; i++) if ((garlic[i].info & 0xf) === 0 || garlic[i].info === 10) draw_transition(garlic[i]); /* Draw thornbush */ var thornbush = world.units[ITEMS.THORNBUSH_SEED]; for (var i = 0; i < thornbush.length; i++) if ((thornbush[i].info & 0xf) === 0 || thornbush[i].info === 10) draw_transition(thornbush[i]); /* Draw pumpkin */ var pumpkin = world.units[ITEMS.PUMPKIN_SEED]; for (var i = 0; i < pumpkin.length; i++) if ((pumpkin[i].info & 0xf) === 0 || pumpkin[i].info === 10) draw_transition(pumpkin[i]); /* Draw wheat */ var wheat = world.units[ITEMS.WHEAT_SEED]; for (var i = 0; i < wheat.length; i++) draw_transition(wheat[i]); /* Draw crate */ var crate = world.units[ITEMS.CRATE]; for (var i = 0; i < crate.length; i++) draw_transition(crate[i], SPRITE.CRATE, SPRITE.HURT_DEAD_BOX); /* Draw dead box */ var dead_box = world.units[ITEMS.DEAD_BOX]; for (var i = 0; i < dead_box.length; i++) draw_transition(dead_box[i], SPRITE.CRATE, SPRITE.HURT_DEAD_BOX); /*Christmas*/ var gift = world.units[ITEMS.GIFT]; for (var i = 0; i < gift.length; i++) draw_transition(gift[i], SPRITE.GIFT, SPRITE.HURT_GIFT); /* Draw rabbit */ var rabbit = world.units[ITEMS.RABBIT]; for (var i = 0; i < rabbit.length; i++) draw_transition(rabbit[i], SPRITE.RABBIT, SPRITE.HURT_RABBIT); /* Draw bed */ var bed = world.units[ITEMS.BED]; for (var i = 0; i < bed.length; i++) draw_transition(bed[i], ItemType.BED); /* Draw sand worm */ var sand_worm = world.units[ITEMS.SAND_WORM]; for (var i = 0; i < sand_worm.length; i++) draw_transition(sand_worm[i], SPRITE.SAND_WORM1, SPRITE.HURT_SAND_WORM1); /* Draw spell */ var spell = world.units[ITEMS.SPELL]; for (var i = 0; i < spell.length; i++) { if (spell[i].fly === 0) draw_transition(spell[i]); } /* Draw players */ /* Draw bed */ var bed = world.units[ITEMS.BED]; for (var i = 0; i < bed.length; i++) draw_transition(bed[i], SPRITE.BED_TOP); /* Draw crab */ var crab = world.units[ITEMS.CRAB]; for (var i = 0; i < crab.length; i++) draw_transition(crab[i]); /* Draw fox */ var fox = world.units[ITEMS.FOX]; for (var i = 0; i < fox.length; i++) draw_transition(fox[i], SPRITE.FOX, SPRITE.HURT_FOX); /* Draw boar */ var boar = world.units[ITEMS.BOAR]; for (var i = 0; i < boar.length; i++) draw_transition(boar[i]); /* Draw wolf */ var wolf = world.units[ITEMS.WOLF]; for (var i = 0; i < wolf.length; i++) draw_transition(wolf[i], SPRITE.WOLF, SPRITE.HURT_WOLF); /* Draw baby_dragon */ var baby_dragon = world.units[ITEMS.BABY_DRAGON]; for (var i = 0; i < baby_dragon.length; i++) draw_transition(baby_dragon[i], SPRITE.BABY_DRAGON, SPRITE.HURT_BABY_DRAGON); /* Draw baby_lava */ var baby_lava = world.units[ITEMS.BABY_LAVA]; for (var i = 0; i < baby_lava.length; i++) draw_transition(baby_lava[i], SPRITE.BABY_LAVA, SPRITE.HURT_BABY_LAVA); /* Draw carrot */ var carrot = world.units[ITEMS.CARROT_SEED]; for (var i = 0; i < carrot.length; i++) if ((carrot[i].info & 0xf) !== 0 && carrot[i].info !== 10) draw_transition(carrot[i]); /* Draw watermelon */ var watermelon = world.units[ITEMS.WATERMELON_SEED]; for (var i = 0; i < watermelon.length; i++) if ((watermelon[i].info & 0xf) !== 0 && watermelon[i].info !== 10) draw_transition(watermelon[i]); /* Draw aloe vera seed */ var aloe_vera = world.units[ITEMS.ALOE_VERA_MOB]; for (var i = 0; i < aloe_vera.length; i++) draw_transition(aloe_vera[i], ItemType.ALOE_VERA); /* Draw aloe vera */ var aloe_vera = world.units[ITEMS.ALOE_VERA_SEED]; for (var i = 0; i < aloe_vera.length; i++) if ((aloe_vera[i].info & 0xf) !== 0 && aloe_vera[i].info !== 10) draw_transition(aloe_vera[i]); /* Draw tomato seed firstground */ var seed = world.units[ITEMS.TOMATO_SEED]; for (var i = 0; i < seed.length; i++) draw_fg_transition(seed[i]); /* Draw garlic */ var garlic = world.units[ITEMS.GARLIC_SEED]; for (var i = 0; i < garlic.length; i++) if ((garlic[i].info & 0xf) !== 0 && garlic[i].info !== 10) draw_transition(garlic[i]); /* Draw thornbush */ var thornbush = world.units[ITEMS.THORNBUSH_SEED]; for (var i = 0; i < thornbush.length; i++) if ((thornbush[i].info & 0xf) !== 0 && thornbush[i].info !== 10) draw_transition(thornbush[i]); /* Draw pumpkin */ var pumpkin = world.units[ITEMS.PUMPKIN_SEED]; for (var i = 0; i < pumpkin.length; i++) if ((pumpkin[i].info & 0xf) !== 0 && pumpkin[i].info !== 10) draw_transition(pumpkin[i]); /* Draw treasure */ var treasure = world.units[ITEMS.TREASURE_CHEST]; for (var i = 0; i < treasure.length; i++) draw_transition(treasure[i], SPRITE.TREASURE_CHEST, SPRITE.HURT_TREASURE_CHEST); /* Draw kraken */ var kraken = world.units[ITEMS.KRAKEN]; for (var i = 0; i < kraken.length; i++) draw_transition(kraken[i], SPRITE.KRAKEN, SPRITE.HURT_KRAKEN); /* Draw pirahna */ var pira = world.units[ITEMS.PIRANHA]; for (var i = 0; i < pira.length; i++) draw_transition(pira[i], SPRITE.PIRANHA, SPRITE.HURT_PIRANHA); /* Draw spider */ var spider = world.units[ITEMS.SPIDER]; for (var i = 0; i < spider.length; i++) draw_transition(spider[i], SPRITE.SPIDER, SPRITE.HURT_SPIDER); /* Draw Penguin */ var penguin = world.units[ITEMS.PENGUIN]; for (var i = 0; i < penguin.length; i++) draw_transition(penguin[i], SPRITE.PENGUIN, SPRITE.HURT_PENGUIN); /* Draw bear */ var bear = world.units[ITEMS.BEAR]; for (var i = 0; i < bear.length; i++) draw_transition(bear[i], SPRITE.BEAR, SPRITE.HURT_BEAR); /* Draw baby mammoth */ var baby_mammoth = world.units[ITEMS.BABY_MAMMOTH]; for (var i = 0; i < baby_mammoth.length; i++) draw_transition(baby_mammoth[i]); /* Draw flame mob */ var flame = world.units[ITEMS.FLAME]; for (var i = 0; i < flame.length; i++) draw_transition(flame[i], SPRITE.FIRE_MOB, SPRITE.HURT_FIRE_MOB); /* Draw crab king */ var crab_boss = world.units[ITEMS.CRAB_BOSS]; for (var i = 0; i < crab_boss.length; i++) draw_transition(crab_boss[i]); /* Draw mammoth */ var mammoth = world.units[ITEMS.MAMMOTH]; for (var i = 0; i < mammoth.length; i++) draw_transition(mammoth[i], SPRITE.MAMMOTH, SPRITE.HURT_MAMMOTH); /* Draw dragons */ var dragon = world.units[ITEMS.DRAGON]; for (var i = 0; i < dragon.length; i++) { if (dragon[i].scale === 1) draw_transition(dragon[i], SPRITE.DRAGON, SPRITE.HURT_DRAGON); } var dragon = world.units[ITEMS.LAVA_DRAGON]; for (var i = 0; i < dragon.length; i++) { if (dragon[i].scale === 1) draw_transition(dragon[i], SPRITE.LAVA_DRAGON, SPRITE.HURT_LAVA_DRAGON); } /* Draw Chest */ var chest = world.units[ITEMS.CHEST]; for (var i = 0; i < chest.length; i++) draw_transition(chest[i]); /* Draw Workbench */ var workbench = world.units[ITEMS.WORKBENCH]; for (var i = 0; i < workbench.length; i++) draw_transition(workbench[i], ItemType.WORKBENCH); /* Draw Furnace */ var furnace = world.units[ITEMS.FURNACE]; for (var i = 0; i < furnace.length; i++) draw_transition(furnace[i]); /* Draw Bread oven */ var bread_oven = world.units[ITEMS.BREAD_OVEN]; for (var i = 0; i < bread_oven.length; i++) draw_transition(bread_oven[i]); /* Draw Wood Door */ var door = world.units[ITEMS.WOOD_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.WOOD_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Stone Door */ var door = world.units[ITEMS.STONE_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.STONE_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Gold Door */ var door = world.units[ITEMS.GOLD_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.GOLD_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Diamond Door */ var door = world.units[ITEMS.DIAMOND_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.DIAMOND_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Amethyst Door */ var door = world.units[ITEMS.AMETHYST_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.AMETHYST_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Amethyst Door */ var door = world.units[ITEMS.REIDITE_DOOR]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], ItemType.REIDITE_DOOR); door[i].draw_life(door[i].info >> 1); } /* Draw Wood Door */ var door = world.units[ITEMS.WOOD_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10024 : 10025 : ItemType.WOOD_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Stone Door */ var door = world.units[ITEMS.STONE_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10026 : 10027 : ItemType.STONE_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Gold Door */ var door = world.units[ITEMS.GOLD_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10028 : 10029 : ItemType.GOLD_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Diamond Door */ var door = world.units[ITEMS.DIAMOND_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10030 : 10031 : ItemType.DIAMOND_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Amethyst Door */ var door = world.units[ITEMS.AMETHYST_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10032 : 10033 : ItemType.AMETHYST_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Reidite Door */ var door = world.units[ITEMS.REIDITE_DOOR_SPIKE]; for (var i = 0; i < door.length; i++) { if (door[i].info) draw_transition(door[i], COLORED_SPIKES ? isAlly(door[i]) ? 10034 : 10035 : ItemType.REIDITE_DOOR_SPIKE); door[i].draw_life(door[i].info >> 1); } /* Draw Wall */ var wall = world.units[ITEMS.WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.WOOD_WALL); wall[i].draw_life(wall[i].info); } /* Draw Stone Wall */ var wall = world.units[ITEMS.STONE_WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.STONE_WALL); wall[i].draw_life(wall[i].info); } /* Draw Gold Wall */ var wall = world.units[ITEMS.GOLD_WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.GOLD_WALL); wall[i].draw_life(wall[i].info); } /* Draw Diamond Wall */ var wall = world.units[ITEMS.DIAMOND_WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.DIAMOND_WALL); wall[i].draw_life(wall[i].info); } /* Draw Amethyst Wall */ var wall = world.units[ITEMS.AMETHYST_WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.AMETHYST_WALL); wall[i].draw_life(wall[i].info); } /* Draw Reidite Wall */ var wall = world.units[ITEMS.REIDITE_WALL]; for (var i = 0; i < wall.length; i++) { draw_transition(wall[i], ItemType.REIDITE_WALL); wall[i].draw_life(wall[i].info); } /* Draw Spike */ var spike = world.units[ITEMS.SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10000 : 10001 : ItemType.WOOD_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw Stone Spike */ var spike = world.units[ITEMS.STONE_SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10002 : 10003 : ItemType.STONE_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw Gold Spike */ var spike = world.units[ITEMS.GOLD_SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10004 : 10005 : ItemType.GOLD_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw Diamond Spike */ var spike = world.units[ITEMS.DIAMOND_SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10006 : 10007 : ItemType.DIAMOND_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw Amethyst Spike */ var spike = world.units[ITEMS.AMETHYST_SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10008 : 10009 : ItemType.AMETHYST_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw Reidite Spike */ var spike = world.units[ITEMS.REIDITE_SPIKE]; for (var i = 0; i < spike.length; i++) { draw_transition(spike[i], COLORED_SPIKES ? isAlly(spike[i]) ? 10010 : 10011 : ItemType.REIDITE_SPIKE); spike[i].draw_life(spike[i].info); } /* Draw well */ var well = world.units[ITEMS.WELL]; for (var i = 0; i < well.length; i++) { var w = well[i]; if (w.info > 0) draw_transition(w, SPRITE.WELL_FULL); else draw_transition(w, ItemType.WELL); } /* Draw totem */ var totem = world.units[ITEMS.TOTEM]; for (var i = 0; i < totem.length; i++) draw_transition(totem[i], ItemType.TOTEM); /* Draw unbreakable map object */ draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.GOLD, "g", 2); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.DIAMOND, "d", 2); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.BERRY, "p", 0); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.EMERALD, "m", 2); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.AMETHYST, "a", 2); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.REIDITE, "re", 2); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.SHADOW_CAVE_STONES, "cs", 3, 3); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.SHADOW_CAVE_STONES, "cs", 2, 2); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.SHADOW_CAVE_STONES, "cs", 1, 1); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.SHADOW_CAVE_STONES, "cs", 0, 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.CAVE_STONES, "cs", 3, 3); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.CAVE_STONES, "cs", 2, 2); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.CAVE_STONES, "cs", 1, 1); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.CAVE_STONES, "cs", 0, 0); /* Draw fruit */ var fruits = world.units[ITEMS.FRUIT]; for (var i = 0; i < fruits.length; i++) { for (var j = 0; j < fruits[i].info; j++) draw_transition(fruits[i].fruits[j], SPRITE.FRUIT); } draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.STONE, "s", 2); /* Draw extractor */ var extractor = world.units[ITEMS.EXTRACTOR_MACHINE_STONE]; for (var i = 0; i < extractor.length; i++) draw_transition(extractor[i]); var extractor = world.units[ITEMS.EXTRACTOR_MACHINE_GOLD]; for (var i = 0; i < extractor.length; i++) draw_transition(extractor[i]); var extractor = world.units[ITEMS.DIAMOND_EXTRACTOR]; for (var i = 0; i < extractor.length; i++) draw_transition(extractor[i]); var extractor = world.units[ITEMS.EXTRACTOR_MACHINE_AMETHYST]; for (var i = 0; i < extractor.length; i++) draw_transition(extractor[i]); var extractor = world.units[ITEMS.EXTRACTOR_MACHINE_REIDITE]; for (var i = 0; i < extractor.length; i++) draw_transition(extractor[i]); /* Draw windmill */ var windmill = world.units[ITEMS.WINDMILL]; for (var i = 0; i < windmill.length; i++) draw_bg_transition(windmill[i]); /* Draw fire */ var fire = world.units[ITEMS.FIRE]; for (var i = 0; i < fire.length; i++) draw_fg_transition(fire[i]); /* Draw big fire */ var fire = world.units[ITEMS.BIG_FIRE]; for (var i = 0; i < fire.length; i++) draw_fg_transition(fire[i]); /* Draw furnace */ var furnace = world.units[ITEMS.FURNACE]; for (var i = 0; i < furnace.length; i++) { if (furnace[i].info) draw_fg_transition(furnace[i]); } /* Draw bread_oven */ var bread_oven = world.units[ITEMS.BREAD_OVEN]; for (var i = 0; i < bread_oven.length; i++) { draw_fg_transition(bread_oven[i]); } /* Draw resurrection */ var resurrection = world.units[ITEMS.RESURRECTION]; for (var i = 0; i < resurrection.length; i++) draw_fg_transition(resurrection[i]); /* Draw emerald_machine */ var emerald_machine = world.units[ITEMS.EMERALD_MACHINE]; for (var i = 0; i < emerald_machine.length; i++) { draw_fg_transition(emerald_machine[i]); emerald_machine[i].draw_life(emerald_machine[i].info); } /* Draw unbreakable map object (next) */ draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.CACTUS, "c", 0); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.WOOD, "t", 5, 4); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.FIR, "f", 2, 2); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.PALM, "plm", 0, 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.TREE_BRANCH, "b", 3, 2); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.WOOD, "t", 3, 2); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.TREE_BRANCH, "b", 1, 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.FIR, "f", 1, 1); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.PALM, "plm", 1, 1); draw_map_transition(draw_map_objects, is, ie, js, je, ItemType.WOOD, "t", 1, 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.FIR, "f", 0, 0); draw_map_transition(draw_map_objects, is, ie, js, je, SPRITE.PALM, "plm", 2, 2); /* Draw windmill */ var windmill = world.units[ITEMS.WINDMILL]; for (var i = 0; i < windmill.length; i++) draw_fg_transition(windmill[i]); /* Draw tower */ var tower = world.units[ITEMS.WOOD_TOWER]; for (var i = 0; i < tower.length; i++) draw_transition(tower[i], ItemType.TOWER); /* Draw player on tower */ var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var p = players[i]; if (p.tower === 1 && (p.speed < 180 || (p.vehicle !== ItemType.BABY_DRAGON && p.vehicle !== ItemType.BABY_LAVA && p.vehicle !== ItemType.NIMBUS && p.vehicle !== ItemType.HAWK && p.vehicle !== ItemType.PLANE))) { p.tower_fx = Utils.lerp(p.tower_fx, 100, 0.018); var spd = 1 + 0.18 * window.Math.min(1, window.Math.max(p.tower_fx, 0) / 100); ctx.save(); ctx.scale(spd, spd); user.cam.x /= spd; user.cam.y /= spd; p.x /= spd; p.y /= spd; p.r.x /= spd; p.r.y /= spd; p.draw_vehicle(); p.draw(); user.cam.x *= spd; user.cam.y *= spd; p.x *= spd; p.y *= spd; p.r.x *= spd; p.r.y *= spd; ctx.restore(); } } /* Draw roof */ var roof = world.units[ITEMS.ROOF]; for (var i = 0; i < roof.length; i++) { draw_transition(roof[i], ItemType.ROOF); roof[i].draw_life(roof[i].info); } /* Draw Firefly */ var firefly = world.units[ITEMS.FIREFLY]; for (var i = 0; i < firefly.length; i++) draw_transition(firefly[i], SPRITE.FIREFLY, SPRITE.HURT_FIREFLY); /* Christmas*/ /* Draw garland */ var garland = world.units[ITEMS.GARLAND]; for (var i = 0; i < garland.length; i++) draw_transition(garland[i], ItemType.GARLAND); /* Draw flying player */ var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var p = players[i]; if ((p.vehicle === ItemType.BABY_DRAGON || p.vehicle === ItemType.BABY_LAVA || p.vehicle === ItemType.NIMBUS || p.vehicle === ItemType.HAWK || p.vehicle === ItemType.PLANE) && p.speed > 180) { p.fly = 1; ctx.save(); var spd = 1 + 0.35 * window.Math.min(1, window.Math.max(p.vehicle_fx5 - 30, 0) / 180); ctx.scale(spd, spd); user.cam.x /= spd; user.cam.y /= spd; p.x /= spd; p.y /= spd; p.r.x /= spd; p.r.y /= spd; p.draw_vehicle(); p.draw(); user.cam.x *= spd; user.cam.y *= spd; p.x *= spd; p.y *= spd; p.r.x *= spd; p.r.y *= spd; ctx.restore(); } // ctx.save(); // ctx.fillStyle = "white"; // ctx.strokeStyle = "black"; // ctx.lineWidth = 3; // ctx.beginPath(); // ctx.translate(p.x + user.cam.x, p.y + user.cam.y); // ctx.arc(0, 0, 25, 0, PI2M); // ctx.stroke(); // ctx.rotate(Math.atan2(p.r.y - p.y, p.r.x - p.x)); // ctx.fillRect(0, -25, 50, 50); // ctx.rotate(-Math.atan2(p.r.y - p.y, p.r.x - p.x)); // ctx.restore(); } /* Draw spell */ var spell = world.units[ITEMS.SPELL]; for (var i = 0; i < spell.length; i++) { if (spell[i].fly === 1) draw_transition(spell[i]); } /* Draw flying dragons */ var dragon = world.units[ITEMS.DRAGON]; for (var i = 0; i < dragon.length; i++) { if (dragon[i].scale > 1) draw_transition(dragon[i], SPRITE.DRAGON, SPRITE.HURT_DRAGON); } var dragon = world.units[ITEMS.LAVA_DRAGON]; for (var i = 0; i < dragon.length; i++) { if (dragon[i].scale > 1) draw_transition(dragon[i], SPRITE.LAVA_DRAGON, SPRITE.HURT_LAVA_DRAGON); } /* Draw hawk */ var hawk = world.units[ITEMS.HAWK]; for (var i = 0; i < hawk.length; i++) draw_transition(hawk[i], SPRITE.HAWK, SPRITE.HURT_HAWK); /* Draw vulture */ var vulture = world.units[ITEMS.VULTURE]; for (var i = 0; i < vulture.length; i++) draw_transition(vulture[i], SPRITE.VULTURE, SPRITE.HURT_VULTURE); // Draw fog effect __effect += delta * 15; if (__effect > 60) __effect -= 60; //draw_map_transition(draw_objects_effect, is, ie, js, je, SPRITE.FOG, "fo", 2); //draw_map_transition(draw_objects_effect, is, ie, js, je, SPRITE.FOD, "fod", 2); var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var p = players[i]; if(p.x + user.cam.x < -130 || p.y + user.cam.y < -130 || p.x + user.cam.x > window.innerWidth + 130 || p.y + user.cam.y > window.innerHeight + 130) continue; if (players[i].vehicle !== ItemType.BABY_DRAGON && players[i].vehicle !== ItemType.BABY_LAVA && players[i].vehicle !== ItemType.HAWK && players[i].vehicle !== ItemType.PLANE && players[i].vehicle !== ItemType.NIMBUS) { if (p.tower === 0) { if (p.tower_fx > 0.001) { p.tower_fx = Utils.lerp(p.tower_fx, 0, 0.018); var spd = 1 + 0.18 * window.Math.min(1, window.Math.max(p.tower_fx, 0) / 100); ctx.save(); ctx.scale(spd, spd); user.cam.x /= spd; user.cam.y /= spd; p.x /= spd; p.y /= spd; p.r.x /= spd; p.r.y /= spd; p.draw_vehicle(); p.draw(); user.cam.x *= spd; user.cam.y *= spd; p.x *= spd; p.y *= spd; p.r.x *= spd; p.r.y *= spd; ctx.restore(); } else { p.fly = 0; p.draw_vehicle(); p.draw(); } } } else if (p.speed <= 180) { ctx.save(); var spd = 1 + 0.35 * window.Math.min(1, window.Math.max(p.vehicle_fx5 - 30, 0) / 180); ctx.scale(spd, spd); user.cam.x /= spd; user.cam.y /= spd; p.x /= spd; p.y /= spd; p.r.x /= spd; p.r.y /= spd; p.fly = 0; p.draw_vehicle(); p.draw(); user.cam.x *= spd; user.cam.y *= spd; p.x *= spd; p.y *= spd; p.r.x *= spd; p.r.y *= spd; ctx.restore(); } } } function draw_bg_transition(o, a) { if (world.transition) { ctx.globalAlpha = 1; o.draw_bg(a); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; o.draw_bg(a); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else o.draw_bg(a); } function draw_fg_transition(o, a) { if (world.transition) { ctx.globalAlpha = 1; o.draw_fg(a); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; o.draw_fg(a); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else o.draw_fg(a); } function draw_image_transition(id, img, x, y) { if (world.transition) { ctx.globalAlpha = 1; ctxDrawImage(ctx, sprite[id][world.time], x, y); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; ctxDrawImage(ctx, sprite[id][world.time], x, y); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else ctxDrawImage(ctx, img, x, y); } function draw_image_transition_hd_2(id1, id2, img, x, y) { var w = img.width; var h = img.height; var w2 = window.Math.floor(w / 2); var h2 = window.Math.floor(h / 2); if (world.transition) { ctx.globalAlpha = 1; ctxDrawImage(ctx, sprite[id1][id2][world.time], 0, 0, w, h, x, y, w2, h2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; ctxDrawImage(ctx, sprite[id1][id2][world.time], 0, 0, w, h, x, y, w2, h2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else ctxDrawImage(ctx, sprite[id1][id2][world.time], 0, 0, w, h, x, y, w2, h2); } function draw_image_transition_hd(id, img, x, y) { var w = img.width; var h = img.height; var w2 = window.Math.floor(w / 2); var h2 = window.Math.floor(h / 2); if (world.transition) { ctx.globalAlpha = 1; ctxDrawImage(ctx, sprite[id][world.time], 0, 0, w, h, x, y, w2, h2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; ctxDrawImage(ctx, sprite[id][world.time], 0, 0, w, h, x, y, w2, h2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else ctxDrawImage(ctx, img, 0, 0, w, h, x, y, w2, h2); } function draw_swim(s) { ctx.globalAlpha = s.alpha; circle(ctx, s.x + user.cam.x, s.y + user.cam.y, s.r); fill_path(ctx, SPRITE.SWIM_COLOR[world.time]); ctx.globalAlpha = 1; } function draw_foot(f) { ctx.save(); ctx.translate(user.cam.x + f.x, user.cam.y + f.y); ctx.rotate(f.angle); ctx.globalAlpha = f.alpha; var img = sprite[f.id][world.time]; ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2); ctx.globalAlpha = 1; ctx.restore(); } function draw_imgs_transition(id, i, x, y, alpha) { if (world.transition && alpha == 1) { ctx.globalAlpha = 1; ctxDrawImage(ctx, sprite[id][world.time][i], x, y); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; ctxDrawImage(ctx, sprite[id][world.time][i], x, y); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else { ctx.globalAlpha = alpha; ctxDrawImage(ctx, sprite[id][world.time][i], x, y); ctx.globalAlpha = 1; } } function draw_transition(o, a1, a2) { if (world.transition) { ctx.globalAlpha = 1; o.draw(a1, a2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; o.draw(a1, a2); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else o.draw(a1, a2); } function draw_map_transition(fun, a1, a2, a3, a4, a5, a6, a7, a8, a9) { if (world.transition) { ctx.globalAlpha = 1; fun(a1, a2, a3, a4, a5, a6, a7, a8, a9); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1 - world.shade.v; fun(a1, a2, a3, a4, a5, a6, a7, a8, a9); world.time = world.time ? 0 : 1; ctx.globalAlpha = 1; } else fun(a1, a2, a3, a4, a5, a6, a7, a8, a9); } /* Color transition */ function get_color_transition(r1, g1, b1, r2, g2, b2, shade) { var color = "#"; var c = window.Math.floor(r2 * shade + (1 - shade) * r1); color += c < 0x10 ? "0" + c.toString(16) : c.toString(16); var c = window.Math.floor(g2 * shade + (1 - shade) * g1); color += c < 0x10 ? "0" + c.toString(16) : c.toString(16); var c = window.Math.floor(b2 * shade + (1 - shade) * b1); color += c < 0x10 ? "0" + c.toString(16) : c.toString(16); return color; } /* Draw ground of the map */ function draw_ground() { // Render ground for (var i = world.biomes.length - 1; i >= 0; i--) { var biome = world.biomes[i]; if (biome.t === world.BIOME_SEA) { var info = world.BIOME[biome.t]; if (-user.cam.x >= biome.x1 - 230 - canw && -user.cam.x <= biome.x2 + 330 && -user.cam.y >= biome.y1 - canh && -user.cam.y <= biome.y2 + 100) { var x2 = biome.x2; if (biome.t !== world.BIOME_SEA) x2 -= 610; var x1 = biome.x1; if (biome.t !== world.BIOME_SEA) x1 += 610; var y2 = biome.y2; if (biome.t !== world.BIOME_SEA) y2 -= 610; var y1 = biome.y1; if (biome.t !== world.BIOME_SEA) y1 += 610; /* Select ground color */ if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(info.night[0], info.night[1], info.night[2], info.day[0], info.day[1], info.day[1], shade); } else ctx.fillStyle = info._color[world.time]; var _left = window.Math.max(user.cam.x + x1 - 2 - 230, 0); var _right = window.Math.max(-user.cam.x + canw - x2 - 330 - 2, 0); var _top = window.Math.max(user.cam.y + y1 - 2, 0); var _bottom = window.Math.max(-user.cam.y + canh - y2 - 100 - 2, 0); ctx.beginPath(); ctx.fillRect(_left, _top, canw - _right - _left, canh - _top - _bottom); } } } // Render beach (empty one) for (var i = world.biomes.length - 1; i >= 0; i--) { var biome = world.biomes[i]; if (biome.t !== world.BIOME_SEA) { var x2 = biome.x2; if (biome.t !== world.BIOME_SEA) x2 -= 400; var x1 = biome.x1; if (biome.t !== world.BIOME_SEA) x1 += 400; var y2 = biome.y2; if (biome.t !== world.BIOME_SEA) y2 -= 300; var y1 = biome.y1; if (biome.t !== world.BIOME_SEA) y1 += 300; /* Draw beach right */ if ((biome.v & WORLD.RIGHT) === 0 && -user.cam.x >= x2 - canw + 120 && -user.cam.x <= x2 + 820 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) { draw_beach_sand_right(x2, y1 + 88, y2 - 88, user.beach[0], world.BIOME[biome.t], biome.v & WORLD.RIGHT); draw_beach_right(x2, y1 + 88, y2 - 88, user.beach[0], world.BIOME[biome.t], biome.v & WORLD.RIGHT); } /* Draw beach left */ if ((biome.v & WORLD.LEFT) === 0 && -user.cam.x >= x1 - canw - 700 && -user.cam.x <= x1 - 20 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) { draw_beach_sand_left(x1, y1 + 88, y2 - 88, user.beach[1], world.BIOME[biome.t], biome.v & WORLD.LEFT); draw_beach_left(x1, y1 + 88, y2 - 88, user.beach[1], world.BIOME[biome.t], biome.v & WORLD.LEFT); } /* Draw beach bottom */ if ((biome.v & WORLD.BOTTOM) === 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y2 - canh - 275 && -user.cam.y <= y2 + 490) { draw_beach_sand_bottom(y2 - 230, x1 - 230, x2 + 230, user.beach[2], world.BIOME[biome.t], biome.v & WORLD.BOTTOM); draw_beach_bottom(y2 - 230, x1 - 230, x2 + 230, user.beach[2], world.BIOME[biome.t], biome.v & WORLD.BOTTOM); } /* Draw beach top */ if ((biome.v & WORLD.TOP) === 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y1 - canh - 390 && -user.cam.y <= y1 + 315) { draw_beach_sand_top(y1 + 310, x1 - 230, x2 + 230, user.beach[3], world.BIOME[biome.t], biome.v & WORLD.TOP); draw_beach_top(y1 + 310, x1 - 230, x2 + 230, user.beach[3], world.BIOME[biome.t], biome.v & WORLD.TOP); } } } // Render beach (empty one) for (var i = world.biomes.length - 1; i >= 0; i--) { var biome = world.biomes[i]; if (biome.t !== world.BIOME_SEA) { var x2 = biome.x2; if (biome.t !== world.BIOME_SEA) x2 -= 400; var x1 = biome.x1; if (biome.t !== world.BIOME_SEA) x1 += 400; var y2 = biome.y2; if (biome.t !== world.BIOME_SEA) y2 -= 300; var y1 = biome.y1; if (biome.t !== world.BIOME_SEA) y1 += 300; /* Draw beach right */ if ((biome.v & WORLD.RIGHT) !== 0 && -user.cam.x >= x2 - canw + 120 && -user.cam.x <= x2 + 820 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) { draw_beach_sand_right(x2, y1 + 88, y2 - 88, user.beach[0], world.BIOME[biome.t], biome.v & WORLD.RIGHT); } /* Draw beach left */ if ((biome.v & WORLD.LEFT) !== 0 && -user.cam.x >= x1 - canw - 700 && -user.cam.x <= x1 - 20 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) { draw_beach_sand_left(x1, y1 + 88, y2 - 88, user.beach[1], world.BIOME[biome.t], biome.v & WORLD.LEFT); } /* Draw beach bottom */ if ((biome.v & WORLD.BOTTOM) !== 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y2 - canh - 275 && -user.cam.y <= y2 + 490) { draw_beach_sand_bottom(y2 - 230, x1 - 230, x2 + 230, user.beach[2], world.BIOME[biome.t], biome.v & WORLD.BOTTOM); } /* Draw beach top */ if ((biome.v & WORLD.TOP) !== 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y1 - canh - 390 && -user.cam.y <= y1 + 315) { draw_beach_sand_top(y1 + 310, x1 - 230, x2 + 230, user.beach[3], world.BIOME[biome.t], biome.v & WORLD.TOP); } } } // Render ground for (var i = world.biomes.length - 1; i >= 0; i--) { var biome = world.biomes[i]; if (biome.t !== world.BIOME_SEA) { var info = world.BIOME[biome.t]; if (-user.cam.x >= biome.x1 - 230 - canw && -user.cam.x <= biome.x2 + 330 && -user.cam.y >= biome.y1 - canh && -user.cam.y <= biome.y2 + 100) { var x2 = biome.x2; if (biome.t !== world.BIOME_SEA) { if ((biome.v & WORLD.RIGHT) === 0) x2 -= 414; else x2 -= 610; } var x1 = biome.x1; if (biome.t !== world.BIOME_SEA) { if ((biome.v & WORLD.LEFT) === 0) x1 += 414; else x1 += 610; } var y2 = biome.y2; if (biome.t !== world.BIOME_SEA) { if ((biome.v & WORLD.BOTTOM) === 0) y2 -= 414; else y2 -= 610; } var y1 = biome.y1; if (biome.t !== world.BIOME_SEA) { if ((biome.v & WORLD.TOP) === 0) y1 += 414; else y1 += 610; } /* Select ground color */ if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(info.night[0], info.night[1], info.night[2], info.day[0], info.day[1], info.day[2], shade); } else ctx.fillStyle = info._color[world.time]; if(biome.x1 === 0) x1 = 0; if(biome.y1 === 0) y1 = 0; var _left = window.Math.max(user.cam.x + x1 - 2 - 230, 0); var _right = window.Math.max(-user.cam.x + canw - x2 - 330 - 2, 0); var _top = window.Math.max(user.cam.y + y1 - 2, 0); var _bottom = window.Math.max(-user.cam.y + canh - y2 - 100 - 2, 0); ctx.beginPath(); ctx.fillRect(_left, _top, canw - _right - _left, canh - _top - _bottom); } } } /* Render islands */ if (ui.quality) { draw_map_transition(draw_breath_objects, _is, _ie, _js, _je, SPRITE.WAVE_TWO, "isl", 2); draw_map_transition(draw_breath_objects, _is, _ie, _js, _je, SPRITE.WAVE_ONE, "isl", 2); } draw_map_transition(draw_map_objects, _is, _ie, _js, _je, SPRITE.ISLAND, "isl", 2); if (ui.quality) draw_map_transition(draw_map_decorations, _is, _ie, _js, _je, SPRITE.DECORATION, "de"); /* Draw player foot print */ var players = world.units[ITEMS.PLAYERS]; for (var i = 0; i < players.length; i++) { var p = players[i]; for (var j = 0; j < p.foot.length; j++) draw_foot(p.foot[j]); } /* Draw river tile on beach if possible */ __wave += delta * 40; if (__wave > 60) __wave -= 60; draw_map_transition(draw_river_tile, _is, _ie, _js, _je, SPRITE.RIVER, "r"); // Render beach for (var i = 0; i < world.biomes.length; i++) { var biome = world.biomes[i]; if (biome.t !== world.BIOME_SEA) { var x2 = biome.x2; if (biome.t !== world.BIOME_SEA) x2 -= 400; var x1 = biome.x1; if (biome.t !== world.BIOME_SEA) x1 += 400; var y2 = biome.y2; if (biome.t !== world.BIOME_SEA) y2 -= 300; var y1 = biome.y1; if (biome.t !== world.BIOME_SEA) y1 += 300; /* Draw beach right */ if ((biome.v & WORLD.RIGHT) > 0 && -user.cam.x >= x2 - canw + 120 && -user.cam.x <= x2 + 820 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) draw_beach_right(x2, y1 + 88, y2 - 88, user.beach[0], world.BIOME[biome.t], biome.v & WORLD.RIGHT); /* Draw beach left */ if ((biome.v & WORLD.LEFT) > 0 && -user.cam.x >= x1 - canw - 700 && -user.cam.x <= x1 - 20 && -user.cam.y >= y1 + 88 - canh && -user.cam.y <= y2 + 50) draw_beach_left(x1, y1 + 88, y2 - 88, user.beach[1], world.BIOME[biome.t], biome.v & WORLD.LEFT); /* Draw beach bottom */ if ((biome.v & WORLD.BOTTOM) > 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y2 - canh - 275 && -user.cam.y <= y2 + 490) draw_beach_bottom(y2 - 230, x1 - 230, x2 + 230, user.beach[2], world.BIOME[biome.t], biome.v & WORLD.BOTTOM); /* Draw beach top */ if ((biome.v & WORLD.TOP) > 0 && -user.cam.x >= x1 - 235 - canw && -user.cam.x <= x2 + 350 && -user.cam.y >= y1 - canh - 390 && -user.cam.y <= y1 + 315) draw_beach_top(y1 + 310, x1 - 230, x2 + 230, user.beach[3], world.BIOME[biome.t], biome.v & WORLD.TOP); } } } /* Draw ash effect */ function draw_ash() { var ash = user.ash; // Draw flakes var flakes = ash.flakes; for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; ash.update(f); draw_imgs_transition(SPRITE.ASHES, f.id, user.cam.x + f.x, user.cam.y + f.y, f.alpha); } // Flush flakes for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; if (f.life <= 0 || f.x > -user.cam.x + canw || f.x < -user.cam.x || f.y > -user.cam.y + canh) flakes.splice(i, 1); } /* Add flake to the screen */ var pos = -user.cam.y; if (world.dist_lava > 300) ash.add(pos); } /* Draw winter effect */ function draw_winter() { var winter = user.winter; if (winter.tempest === 0) winter.tempest_speed = window.Math.max(0, winter.tempest_speed - delta / 10); else winter.tempest_speed = window.Math.min(1, winter.tempest_speed + delta / 10); // Draw flakes var flakes = winter.flakes; for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; winter.update(f); draw_imgs_transition(SPRITE.FLAKES, f.id, user.cam.x + f.x, user.cam.y + f.y, f.alpha); } // Flush flakes for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; if (f.life <= 0 || f.x > -user.cam.x + canw || f.x < -user.cam.x || f.y > -user.cam.y + canh) flakes.splice(i, 1); } /* Add flake to the screen */ var pos = -user.cam.y; if (world.dist_winter > 300) winter.add(pos); } /* Draw winter effect */ function draw_desert() { var desert = user.desert; if (desert.tempest === 0) desert.tempest_speed = window.Math.max(0, desert.tempest_speed - delta / 10); else desert.tempest_speed = window.Math.min(1, desert.tempest_speed + delta / 10); // Draw flakes var flakes = desert.flakes; for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; desert.update(f); draw_imgs_transition(SPRITE.DESERT, f.id, user.cam.x + f.x, user.cam.y + f.y, f.alpha); } // Flush flakes for (var i = 0; i < flakes.length; i++) { var f = flakes[i]; if (f.life <= 0 || f.x > -user.cam.x + canw || f.x < -user.cam.x - canw / 2 || f.y > -user.cam.y + canh) flakes.splice(i, 1); } /* Add flake to the screen */ var pos = -user.cam.y; if (world.dist_desert > -1000) desert.add(pos); } /* Draw beach sand left */ function draw_beach_sand_left(xMin, yMin, yMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_x = user.cam.x + xMin - 700; var _top = window.Math.max(user.cam.y + yMin, 0); var _bottom = window.Math.max(-user.cam.y + canh - yMax - 100, 0); var diff_y = _top; var mycanh = canh - _top - _bottom; /* Draw deep water */ if (hasWave) var wx = beach.t(w1).x; else var wx = w1.r.x; var d = diff_x + WORLD.LW1SX; d += wx + WORLD.W1SX - 2; /* Draw middle wave */ if (hasWave) var wx = beach.t(w2).x; else var wx = w2.r.x; var d2 = diff_x + WORLD.LW2SX - d + wx; d += d2 - 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var wx = beach.t(w3).x; else var wx = w3.r.x; d2 = diff_x + WORLD.LW3SX - d + wx; if (od < d + d2 - 3) { d += d2 - 2; } else { d = od; } d2 = diff_x + WORLD.LSANDX - d; /* Draw sand */ if (hasWave > 0 && biome.isSand === 1) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x4d, 0x48, 0xfc, 0xef, 0xbb, shade); } else ctx.fillStyle = SPRITE.SAND_COLOR[world.time]; ctx.fillRect(d, diff_y, d2, mycanh); } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(biome.night[0], biome.night[1], biome.night[2], biome.day[0], biome.day[1], biome.day[2], shade); } else ctx.fillStyle = biome._color[world.time]; ctx.fillRect(d, diff_y, d2, mycanh); } } /* Draw beach */ function draw_beach_left(xMin, yMin, yMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_x = user.cam.x + xMin - 700; var _top = window.Math.max(user.cam.y + yMin, 0); var _bottom = window.Math.max(-user.cam.y + canh - yMax - 100, 0); var diff_y = _top; var mycanh = canh - _top - _bottom; /* Draw deep water */ if (hasWave) var w = beach.t(w1); else var w = w1.r; var d = diff_x + WORLD.LW1SX; var w1x = d, w1y = diff_y, w1w = w.x + WORLD.W1SX, w1h = mycanh; d += w.x + WORLD.W1SX - 2; var od3 = d; /* Draw middle wave */ if (hasWave) var w = beach.t(w2); else var w = w2.r; var d2 = diff_x + WORLD.LW2SX - d + w.x; var w2x = d, w2y = diff_y, w2w = d2, w2h = mycanh; d += d2 - 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var w = beach.t(w3); else var w = w3.r; d2 = diff_x + WORLD.LW3SX - d + w.x; if (od < d + d2 - 3) { var w3ok = true; var w3x = d, w3y = diff_y, w3w = d2, w3h = mycanh; d += d2 - 2; var od2 = d; } else { var w3ok = false; d = od; var od2 = -1; } d2 = diff_x + WORLD.LSANDX - d; if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; ctx.fillRect(w1x, w1y, w1w, w1h); if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x46, 0x4c, 0x2a, 0x8b, 0x9b, shade); } else ctx.fillStyle = SPRITE.WATER_2_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w2x, w2y, w2w, w2h); if (w3ok) { if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x11, 0x5e, 0x60, 0xa9, 0xd6, 0xd3, shade); } else ctx.fillStyle = SPRITE.WATER_1_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w3x, w3y, w3w, w3h); } /* Draw floam bubble */ if (ui.quality && hasWave) beach.draw_foams_left(od, od2, od3, diff_x, -user.cam.y + w1y, -user.cam.y + w1y + w1h); } /* Draw beach sand */ function draw_beach_sand_top(yMin, xMin, xMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_y = user.cam.y + yMin - 700; var _left = window.Math.max(user.cam.x + xMin, 0); var _right = window.Math.max(-user.cam.x + canw - xMax - 100, 0); var diff_x = _left; var mycanw = canw - _left - _right; /* Draw deep water */ if (hasWave) var wx = beach.t(w1).x; else var wx = w1.r.x; var d = diff_y + WORLD.LW1SX; d += wx + WORLD.W1SX - 2; /* Draw middle wave */ if (hasWave) var wx = beach.t(w2).x; else var wx = w2.r.x; var d2 = diff_y + WORLD.LW2SX - d + wx; d += d2 - 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var wx = beach.t(w3).x; else var wx = w3.r.x; d2 = diff_y + WORLD.LW3SX - d + wx; if (od < d + d2 - 3) { d += d2 - 2; } else { d = od; } d2 = diff_y + WORLD.LSANDX - d; /* Draw sand */ if (hasWave > 0 && biome.isSand === 1) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x4d, 0x48, 0xfc, 0xef, 0xbb, shade); } else ctx.fillStyle = SPRITE.SAND_COLOR[world.time]; ctx.fillRect(diff_x, d, mycanw, d2); } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(biome.night[0], biome.night[1], biome.night[2], biome.day[0], biome.day[1], biome.day[2], shade); } else ctx.fillStyle = biome._color[world.time]; ctx.fillRect(diff_x, d, mycanw, d2); } } /* Draw beach */ function draw_beach_top(yMin, xMin, xMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_y = user.cam.y + yMin - 700; var _left = window.Math.max(user.cam.x + xMin, 0); var _right = window.Math.max(-user.cam.x + canw - xMax - 100, 0); var diff_x = _left; var mycanw = canw - _left - _right; /* Draw deep water */ if (hasWave) var w = beach.t(w1); else var w = w1.r; var d = diff_y + WORLD.LW1SX; var w1x = diff_x, w1y = d, w1h = w.x + WORLD.W1SX, w1w = mycanw; d += w.x + WORLD.W1SX - 2; var od3 = d; /* Draw middle wave */ if (hasWave) var w = beach.t(w2); else var w = w2.r; var d2 = diff_y + WORLD.LW2SX - d + w.x; var w2y = d, w2x = diff_x, w2h = d2, w2w = mycanw; d += d2 - 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var w = beach.t(w3); else var w = w3.r; d2 = diff_y + WORLD.LW3SX - d + w.x; if (od < d + d2 - 3) { var w3ok = true; var w3y = d, w3x = diff_x, w3h = d2, w3w = mycanw; d += d2 - 2; var od2 = d; } else { var w3ok = false; d = od; var od2 = -1; } d2 = diff_y + WORLD.LSANDX - d; if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; ctx.fillRect(w1x, w1y, w1w, w1h); if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x46, 0x4c, 0x2a, 0x8b, 0x9b, shade); } else ctx.fillStyle = SPRITE.WATER_2_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w2x, w2y, w2w, w2h); if (w3ok) { if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x11, 0x5e, 0x60, 0xa9, 0xd6, 0xd3, shade); } else ctx.fillStyle = SPRITE.WATER_1_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w3x, w3y, w3w, w3h); } /* Draw floam bubble */ if (ui.quality && hasWave) beach.draw_foams_top(od, od2, od3, diff_y, -user.cam.x + w1x, -user.cam.x + w1x + w1w); } /* Draw beach sand */ function draw_beach_sand_right(xMin, yMin, yMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_x = user.cam.x + xMin + 820; var _top = window.Math.max(user.cam.y + yMin, 0); var _bottom = window.Math.max(-user.cam.y + canh - yMax - 100, 0); var diff_y = _top; var mycanh = canh - _top - _bottom; /* Draw deep water */ if (hasWave) var wx = beach.t(w1).x; else var wx = w1.r.x; var d = diff_x + WORLD.LW1SX; d += -wx + WORLD.W1SX + 2; var od3 = d; /* Draw middle wave */ if (hasWave) var wx = beach.t(w2).x; else var wx = w2.r.x; var d2 = diff_x - WORLD.LW2SX - d - wx; d += d2 + 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var wx = beach.t(w3).x; else var wx = w3.r.x; d2 = diff_x - WORLD.LW3SX - d - wx; if (od > d + d2) { d += d2 + 2; } else { d = od; } d2 = diff_x - WORLD.LSANDX - d; /* Draw sand */ if (hasWave > 0 && biome.isSand === 1) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x4d, 0x48, 0xfc, 0xef, 0xbb, shade); } else ctx.fillStyle = SPRITE.SAND_COLOR[world.time]; ctx.fillRect(d, diff_y, d2, mycanh); } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(biome.night[0], biome.night[1], biome.night[2], biome.day[0], biome.day[1], biome.day[2], shade); } else ctx.fillStyle = biome._color[world.time]; ctx.fillRect(d, diff_y, d2, mycanh); } } /* Draw beach */ function draw_beach_right(xMin, yMin, yMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_x = user.cam.x + xMin + 820; var _top = window.Math.max(user.cam.y + yMin, 0); var _bottom = window.Math.max(-user.cam.y + canh - yMax - 100, 0); var diff_y = _top; var mycanh = canh - _top - _bottom; /* Draw deep water */ if (hasWave) var w = beach.t(w1); else var w = w1.r; var d = diff_x + WORLD.LW1SX; var w1x = d, w1y = diff_y, w1w = -w.x + WORLD.W1SX, w1h = mycanh; d += -w.x + WORLD.W1SX + 2; var od3 = d; /* Draw middle wave */ if (hasWave) var w = beach.t(w2); else var w = w2.r; var d2 = diff_x - WORLD.LW2SX - d - w.x; var w2x = d, w2y = diff_y, w2w = d2, w2h = mycanh; d += d2 + 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var w = beach.t(w3); else var w = w3.r; d2 = diff_x - WORLD.LW3SX - d - w.x; if (od > d + d2) { var w3ok = true; var w3x = d, w3y = diff_y, w3w = d2, w3h = mycanh; d += d2 + 2; var od2 = d; } else { var w3ok = false; d = od; var od2 = -1; } d2 = diff_x - WORLD.LSANDX - d; if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; ctx.fillRect(w1x, w1y, w1w, w1h); if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x46, 0x4c, 0x2a, 0x8b, 0x9b, shade); } else ctx.fillStyle = SPRITE.WATER_2_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w2x, w2y, w2w, w2h); if (w3ok) { if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x11, 0x5e, 0x60, 0xa9, 0xd6, 0xd3, shade); } else ctx.fillStyle = SPRITE.WATER_1_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w3x, w3y, w3w, w3h); } /* Draw floam bubble */ if (ui.quality && hasWave) beach.draw_foams_right(od, od2, od3, diff_x, -user.cam.y + w1y, -user.cam.y + w1y + w1h); } function draw_beach_sand_bottom(yMin, xMin, xMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_y = user.cam.y + yMin + 710; var _left = window.Math.max(user.cam.x + xMin, 0); var _right = window.Math.max(-user.cam.x + canw - xMax - 100, 0); var diff_x = _left; var mycanw = canw - _left - _right; /* Draw deep water */ if (hasWave) var wx = beach.t(w1).x; else var wx = w1.r.x; var d = diff_y + WORLD.LW1SX; d += -wx + WORLD.W1SX + 2; /* Draw middle wave */ if (hasWave) var wx = beach.t(w2).x; else var wx = w2.r.x; var d2 = diff_y - WORLD.LW2SX - d - wx; d += d2 + 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var wx = beach.t(w3).x; else var wx = w3.r.x; d2 = diff_y - WORLD.LW3SX - d - wx; if (od > d + d2) { d += d2 + 2; } else { d = od; } d2 = diff_y - WORLD.LSANDX - d; /* Draw sand */ if (hasWave > 0 && biome.isSand === 1) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x4d, 0x48, 0xfc, 0xef, 0xbb, shade); } else ctx.fillStyle = SPRITE.SAND_COLOR[world.time]; ctx.fillRect(diff_x, d, mycanw, d2); } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(biome.night[0], biome.night[1], biome.night[2], biome.day[0], biome.day[1], biome.day[2], shade); } else ctx.fillStyle = biome._color[world.time]; ctx.fillRect(diff_x, d, mycanw, d2); } } function draw_beach_bottom(yMin, xMin, xMax, beach, biome, hasWave) { /* Init var */ var w1 = beach.w1; var w2 = beach.w2; var w3 = beach.w3; var diff_y = user.cam.y + yMin + 710; var _left = window.Math.max(user.cam.x + xMin, 0); var _right = window.Math.max(-user.cam.x + canw - xMax - 100, 0); var diff_x = _left; var mycanw = canw - _left - _right; /* Draw deep water */ if (hasWave) var w = beach.t(w1); else var w = w1.r; var d = diff_y + WORLD.LW1SX; var w1y = d, w1x = diff_x, w1h = -w.x + WORLD.W1SX, w1w = mycanw; d += -w.x + WORLD.W1SX + 2; var od3 = d; /* Draw middle wave */ if (hasWave) var w = beach.t(w2); else var w = w2.r; var d2 = diff_y - WORLD.LW2SX - d - w.x; var w2y = d, w2x = diff_x, w2h = d2, w2w = mycanw; d += d2 + 2; var od = d - 2; /* Draw floam wave */ if (hasWave) var w = beach.t(w3); else var w = w3.r; d2 = diff_y - WORLD.LW3SX - d - w.x; if (od > d + d2) { var w3ok = true; var w3y = d, w3x = diff_x, w3h = d2, w3w = mycanw; d += d2 + 2; var od2 = d; } else { var w3ok = false; d = od; var od2 = -1; } d2 = diff_y - WORLD.LSANDX - d; if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; ctx.fillRect(w1x, w1y, w1w, w1h); if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x0f, 0x46, 0x4c, 0x2a, 0x8b, 0x9b, shade); } else ctx.fillStyle = SPRITE.WATER_2_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w2x, w2y, w2w, w2h); if (w3ok) { if (hasWave) { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x11, 0x5e, 0x60, 0xa9, 0xd6, 0xd3, shade); } else ctx.fillStyle = SPRITE.WATER_1_COLOR[world.time]; } else { if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x09, 0x37, 0x3f, 0x0b, 0x6a, 0x84, shade); } else ctx.fillStyle = SPRITE.WATER_3_COLOR[world.time]; } ctx.fillRect(w3x, w3y, w3w, w3h); } /* Draw floam bubble */ if (ui.quality && hasWave) beach.draw_foams_bottom(od, od2, od3, diff_y, -user.cam.x + w1x, -user.cam.x + w1x + w1w); } /* Draw world effect */ function draw_world_with_effect() { /* Avoid some global alpha modifier script */ ctx.globalAlpha = 1; /* Start animation control */ if (world.transition) var ret = world.shade.update(); /* Update biome distance from player */ world.update_dist_from_biomes(-user.cam.x, -user.cam.y); /* Update camera vision */ _js = window.Math.max(window.Math.floor(-user.cam.x / world.dw) - 5, 0); _je = window.Math.min(window.Math.floor((-user.cam.x + canw) / world.dw) + 4, world.nw - 1); _is = window.Math.max(window.Math.floor(-user.cam.y / world.dh) - 3, 0); _ie = window.Math.min(window.Math.floor((-user.cam.y + canh) / world.dh) + 3, world.nh - 1); /* Draw ground of the map */ draw_ground(); /* Draw world of the map */ draw_world(); /* Draw winter effect */ if (ui.quality && world.mode !== WORLD.MODE_ZOMBIES && world.mode !== WORLD.MODE_LEGACY && world.mode !== WORLD.MODE_BR) { draw_desert(); draw_winter(); // draw_rain(); draw_ash(); } /* End animation control */ if (world.transition) { if (ret) { world.transition = false; world.shade.v = 0; world.shade.o = false; } } } /* Extern var used for select trigger*/ var MOUSE_MOVE = 0; var MOUSE_DOWN = 1; var MOUSE_UP = 2; /* State var for pix-button */ var BUTTON_OUT = 0; var BUTTON_IN = 1; var BUTTON_CLICK = 2; /* Get mouse pos in canvas */ function get_mouse_pos(evt) { return { x: evt.clientX, y: evt.clientY }; } /* Render text image */ function gui_render_text(text, font, color, height, width, background, paddingHorz = 0, paddingVert = 0, border = 0, borderColor, opacity, radius, borderText, borderTextWidth = 0, weight) { if (text.length === 0) text = " "; var can = window.document.createElement("canvas"); var ctx = can.getContext("2d"); (ctx.textBaseline = "middle"), (ctx.font = (weight !== undefined ? weight + " " : "") + height + "px " + font); if (width !== undefined) width = window.Math.min(ctx.measureText(text).width, width); else width = ctx.measureText(text).width; can.width = width + paddingHorz; can.height = height + paddingVert; if (background !== undefined) { if (opacity !== undefined) ctx.globalAlpha = opacity; ctx.fillStyle = background; if (radius !== undefined) { roundRect(ctx, border + 2, border, width + paddingHorz - border * 2 - 4, height + paddingVert - border * 2, radius); ctx.fill(); } else ctx.fillRect(border, border, width + paddingHorz - border * 2, height + paddingVert - border * 2); ctx.globalAlpha = 1; if (border !== 0) { ctx.lineWidth = border; ctx.strokeStyle = borderColor; ctx.stroke(); } } // Draw text ctx.textBaseline = "middle"; ctx.font = (weight !== undefined ? weight + " " : "") + height + "px " + font; // Draw text border if (borderText !== undefined) { ctx.strokeStyle = borderText; ctx.lineWidth = borderTextWidth; ctx.lineJoin = "miter"; ctx.miterLimit = 2; ctx.strokeText(text, window.Math.floor(paddingHorz / 2), window.Math.floor(paddingVert / 2) + window.Math.floor(height / 2), width); } ctx.fillStyle = color; ctx.fillText(text, window.Math.floor(paddingHorz / 2), window.Math.floor(paddingVert / 2) + window.Math.floor(height / 2), width); can.w2 = can.width / 2; can.h2 = can.height / 2; return can; } /* Create button object with trigger to be placed in canvas event listener */ function gui_create_button(width, height, text, custom_img, hd, breath, callback, x = 0, y = 0, position = 0, active = 1) { // Define optionnal parameters hd = hd === 3 ? 3 : hd === 1 ? 2 : 1; /* If user want to give breath effect when the mouse is over */ if (breath !== 1) breath = 0; /* If user want to make a custom button (with his own images) */ if (custom_img) var img = custom_img; var button_data = { width: width, height: height, img: img, state: BUTTON_OUT, translate: { x: x, y: y, _x: x, _y: y }, enable_breath: breath, breath: 0, callback: callback, position: position, active: active }; var get_img = function () { return button_data.img[button_data.state]; }; var in_button = function (mouse) { var translate = button_data.translate; // Init button size if (button_data.width === 0 || button_data.height === 0) { button_data.width = button_data.img[0].width; button_data.height = button_data.img[0].height; } return mouse.x > translate.x && mouse.x < translate.x + button_data.width / hd && mouse.y > translate.y && mouse.y < translate.y + button_data.height / hd; }; /* Modify state of button and return true if in button, false otherwhise */ var trigger = function (can, mouse, state) { /* In button */ if (in_button(mouse)) { if (state == MOUSE_DOWN) button_data.state = BUTTON_CLICK; else if (state == MOUSE_UP) button_data.state = BUTTON_IN; else if (state == MOUSE_MOVE && button_data.state != BUTTON_CLICK) button_data.state = BUTTON_IN; return true; /* Out button */ } button_data.state = BUTTON_OUT; return false; }; var breath = function () { var s = 0; if (button_data.enable_breath === 1) { if (button_data.state === BUTTON_IN || button_data.state === BUTTON_CLICK) button_data.breath = (button_data.breath + delta * 1000) % 1000; else if (button_data.breath > 0) { button_data.breath = button_data.breath > 500 ? button_data.breath + delta * 1000 : button_data.breath - delta * 1000; if (button_data.breath < 0 || button_data.breath > 1000) button_data.breath = 0; } s = 0.2 * Utils.ease_in_out_quad(button_data.breath > 500 ? (1000 - button_data.breath) / 500 : button_data.breath / 500); } return s; }; /* Draw button on targeted canvas */ var draw; if (hd === 2) { draw = function (ctx_target) { var s = 1 + breath(); var img = get_img(); var w = (button_data.width * s) / 2; var h = (button_data.height * s) / 2; var _w = (w - button_data.width / 2) / 2; var _h = (h - button_data.height / 2) / 2; ctxDrawImage(ctx_target, img, button_data.translate.x - _w, button_data.translate.y - _h, w, h); }; } else if (hd === 3) { draw = function (ctx_target) { var img = get_img(); var w = button_data.width; var h = button_data.height; var _w = (w - button_data.width) / 2; var _h = (h - button_data.height) / 2; ctxDrawImage(ctx_target, img, button_data.translate.x - _w, button_data.translate.y - _h, w, h); }; hd = 1; } else { draw = function (ctx_target) { var img = get_img(); ctxDrawImage(ctx_target, img, button_data.translate.x, button_data.translate.y); }; } return { info: button_data, trigger: trigger, draw: draw, in_button: in_button }; } function gui_create_image_hd(img, active, x, y, position) { var translate = { x: x, y: y, _x: x, _y: y }; var draw = function (ctx_target) { ctxDrawImage(ctx_target, img, translate.x, translate.y, img.width / 2, img.height / 2); }; return { translate: translate, draw: draw, active: active, position: position }; } class Database { constructor(dbName, dbVersion) { this.dbName = dbName; this.dbVersion = dbVersion; this.db = null; } open() { return new Promise((resolve, reject) => { const request = indexedDB.open(this.dbName, this.dbVersion); request.onerror = () => { console.error('Database failed to open'); reject(); }; request.onsuccess = () => { console.log('Database opened successfully'); this.db = request.result; resolve(); }; request.onupgradeneeded = (event) => { console.log('Database upgrade needed'); const db = event.target.result; if (!db.objectStoreNames.contains('maps')) { db.createObjectStore('maps', { keyPath: 'name' }); } }; }); } setMap(name, map) { return new Promise((resolve, reject) => { if (!this.db) { reject('Database is not open'); return; } const transaction = this.db.transaction('maps', 'readwrite'); const objectStore = transaction.objectStore('maps'); const request = objectStore.put({ name, map }); request.onsuccess = () => { console.log(`Map "${name}" saved successfully`); resolve(); }; request.onerror = () => { console.error(`Failed to save map "${name}"`); reject(); }; }); } getMap(name) { return new Promise((resolve, reject) => { if (!this.db) { reject('Database is not open'); return; } const transaction = this.db.transaction('maps', 'readonly'); const objectStore = transaction.objectStore('maps'); const request = objectStore.get(name); request.onsuccess = () => { const data = request.result; if (data) { console.log(`Map "${name}" loaded successfully`); resolve(data.map); } else { reject(`Map "${name}" not found`); } }; request.onerror = () => { console.error(`Failed to load map "${name}"`); reject(); }; }); } } class NetworkClient { constructor() { /* WATCH OUT, I'M NOT SURE ABOUT THIS TRICK, IT MAY BE A SOURCE OF BUG * * That seem work for use this object in a event listener */ var _this = this; this.socket = null; this._current_id = 0; this.last_join = 0; this.server_list = []; this.mode_list = [[], [], [], [], [], [], [], [], []]; this.selected_server = [-1, -1, -1, -1, -1, -1, -1, -1, -1]; this.current_mode = 0; this.privateServer = 0; this.fetch_server_list = async () => { if (_this.privateServer) return; await fetch(DB + "servers") .then(response => response.json()) .then(servers => { for (const server of servers) { this.server_list.push(server); } }); }; /* geolocate server */ this.geolocate_server = function (list) { var rand = []; for (var i = 0; i < list.length; i++) { if (list[i]["a"].indexOf(TZ) !== -1) rand.push(i); } if (rand.length === 0) return 0; return rand[window.Math.floor(window.Math.random() * rand.length)]; }; /* Set server list */ this.set_server_list = function (list) { var nop = 0; for (var i = 0; i < list.length; i++) nop += list[i]["nu"]; var select = window.document.getElementById("servselect"); if (client.selected_server[client.current_mode] === -1) client.selected_server[client.current_mode] = select.selectedIndex = client.geolocate_server(list); else select.selectedIndex = client.selected_server[client.current_mode]; var options = '" + '
    ' + // '
  • Choose a server (' + nop + ') pla' + 'yers
  • '; '
  • ' + LANG[TEXT.CHOOSE] + " (" + this.total_players + ") " + LANG[TEXT.TOTAL_PLAYERS] + "
  • "; for (var i = 0; i < list.length; i++) { options += '
  • ' + list[i]["a"]; options += " [" + list[i]["nu"] + " " + LANG[TEXT.PLAYERS] + "]"; options += "
  • \n"; } options += '
  • (' + nop + ") " + LANG[TEXT.TOTAL_MODE] + "
  • "; options += ""; select.innerHTML = options; window.document.querySelectorAll(".md-select").forEach(function (select) { select.addEventListener("click", function () { this.classList.toggle("active"); }); }); window.document.querySelectorAll(".md-select ul li").forEach(function (item) { item.addEventListener("click", function () { var v = this.textContent; var id = -1; var sl = client.mode_list[client.current_mode]; for (var i = 0; i < sl.length; i++) { if (sl[i]["a"] + " [" + sl[i]["nu"] + " " + LANG[TEXT.PLAYERS] + "]" === v) { id = i; break; } } if (id === -1) return; window.document.getElementById("servselect").selectedIndex = id; client.selected_server[client.current_mode] = id; window.document.querySelectorAll(".md-select ul li").forEach(function (listItem) { listItem.classList.remove("active"); }); this.classList.add("active"); var buttonLabel = window.document.querySelector(".md-select label button"); buttonLabel.textContent = v; }); }); }; /* Generate server list */ this.total_players = 0; this.update_server_list = function () { this.total_players = 0; for (var i = 0; i < client.server_list.length; i++) { // TODO: Handle community servers if (this.server_list[i]["gm"] == "experimental") { this.mode_list[WORLD.MODE_EXPERIMENTAL].push(this.server_list[i]); } else if (this.server_list[i]["gm"] == "zombies") this.mode_list[WORLD.MODE_ZOMBIES].push(this.server_list[i]); else if (this.server_list[i]["gm"] == "forest") { this.mode_list[WORLD.MODE_LEGACY].push(this.server_list[i]); } else if (this.server_list[i]["gm"] == "battle-royale") { this.mode_list[WORLD.MODE_BR].push(this.server_list[i]); } else if (this.server_list[i]["gm"] == "vampires") { this.mode_list[WORLD.MODE_VAMPIRES].push(this.server_list[i]); } else if (this.server_list[i]["gm"] == "community") { this.mode_list[WORLD.MODE_COMMUNITY].push(this.server_list[i]); } else this.mode_list[WORLD.MODE_PVP].push(this.server_list[i]); this.total_players += this.server_list[i]["nu"]; } for (var i = 0; i < this.mode_list.length; i++) if (this.mode_list[i].length === 0) this.mode_list[i].push({ a: LANG[TEXT.COMMING_SOON], nu: 0, i: "127.0.0.1", p: 80 }); this.set_server_list(this.mode_list[0]); // 0 : Normale mode // 1 : Hunger games mode // 2 : Zombies mode // 3 : Vampires mode // 4 : Legacy // 5 : Battle Royale mode this.select_gamemode = function (v) { client.current_mode = v; client.set_server_list(client.mode_list[client.current_mode]); // Idk why I need to replicate the following line, but I need it. client.set_server_list(client.mode_list[client.current_mode]); window.document.getElementById("servselect").selectedIndex = client.current_mode; }; }; /* If server do not respond we kill it */ this.timeout_number = 0; this.timeout_handler = null; /* New message alert */ this.new_alert = function (msg, color = "#ffffff") { if (!user.alert.text) user.alert.text = [msg, color]; else user.alert.list.push([msg, color]); }; /* There are no more resources in the map */ this.no_resources = function () { this.new_alert(LANG[TEXT.NO_MORE_RESOURCES]); }; /* You survive one more day */ this.survive = function () { var msg; if (user.day == 0) msg = LANG[TEXT.SURVIVED_1DAY]; else msg = LANG[TEXT.SURVIVED] + (user.day + 1) + LANG[TEXT.DAYS]; this.new_alert(msg); user.day++; }; /* The server cannot restore your player */ this.fail_restore = function () { /* Clear previous timeout */ window.clearTimeout(_this.timeout_handler); /* Reconnecct stop */ user.reconnect.enabled = false; /* Kill user (I mean, not litteraly) */ user.alive = false; /* Store the nickname of the player TODO not used right now */ this.new_alert(LANG[TEXT.DEAD_SAD]); /* Quit the game */ game.quit(ui.run); this.socket.close(); }; /* Server is blocked */ this.blocked = function () { /* Server is full stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.SPAM_ME]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Server is full */ this.full = function () { /* Server is full stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.SPAM_ME2]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Update player list */ this.new_player = function ([id, nickname, level, skin, accessory, bag, book]) { var players = world.players; players[id].nickname = nickname; players[id].level = level; players[id].skin = skin; players[id].accessory = accessory; players[id].baglook = bag; players[id].book = book; players[id].score = 0; players[id].ldb_label = null; players[id].label = null; players[id].label_winter = null; players[id].alive = true; }; /* Get focus again */ this.get_focus = function () { send([11]); }; /* Resource are empty */ this.empty_res = function () { this.new_alert(LANG[TEXT.EMPTY]); }; /* Inventory is full */ this.inv_full = function () { this.new_alert(LANG[TEXT.INV_FULL]); }; /* User choose a kit */ this.choose_kit = function (id) { send([21, id]); user.shop.open = false; }; /* User take a kit */ this.kit_ok = function (k) { var items = KIT[k - 1].items; /* Take items from kit */ for (var i = 0; i < items.length && user.inv.max > user.inv.can_select.length; i++) { var item = items[i][1]; var amount = items[i][0]; if (items[i][1] === ItemType.BAG) user.inv.update_bag_size(1, 0); else this.gather([0, item, amount]); } }; /* You gathe some resources */ this.gather = function (ui16) { var len = ui16.length; var inv = user.inv; for (var i = 1; i < len; i += 2) { var o = ui16[i]; var n = ui16[i + 1]; if(o < 0 || n <= 0) continue; for (var j = 0; j < inv.can_select.length; j++) { if (inv.can_select[j].id == o) { inv.n[o] += n; break; } } if (j == inv.can_select.length) { inv.n[o] = n; inv.can_select.push(game.inv_buttons[o]); game.update_inv_buttons(); } } user.craft.update(); }; /* Update gauges */ this.gauges = function (life, food, cold, thirst, oxygen, warm, bandage) { if(food <= 60){ client.select_inv(ItemType.BERRY, user.inv.find_item(ItemType.BERRY)) } user.gauges.l = life / 100; user.gauges.h = food / 100; user.gauges.c = cold / 100; user.gauges.t = thirst / 100; user.gauges.o = oxygen / 100; user.gauges.wa = warm / 100; user.bandage = bandage; }; this.succeed_quest = function (id) { game.quests.modify(id, 2); }; this.fail_quest = function (id) { game.quests.modify(id, 0); }; this.claimed = function (id) { game.quests.modify(id, 3); }; this.gauges_life = function (life, bandage) { user.gauges.l = life / 100; user.bandage = bandage; }; this.gauges_water = function (water) { user.gauges.t = water / 100; }; this.gauges_food = function (food) { user.gauges.h = food / 100; }; this.gauges_warm = function (warm) { user.gauges.wa = warm / 100; }; this.gauges_cold = function (cold) { user.gauges.c = cold / 100; }; /* Update time of the game */ this.get_time = function (d) { world.time = d; world.transition = true; }; this.change_ground = function () { window.document.getElementById("game_body").style.backgroundColor = SPRITE.GROUND[world.time]; }; /* Kill player from list */ this.kill_player = function (id) { world.players[id].alive = false; }; /* Receive new cam position */ this.set_cam = function (data) { var ui16 = new window.Uint16Array(data); /* Correct with local width and height */ user.cam.change(ui16[1], ui16[2]); }; /* recover focus */ this.recover_focus = function (data) { var ui16 = new window.Uint16Array(data); /* Set camera */ user.cam.change(ui16[1], ui16[2]); }; /* Something in the map were hitten */ this.hitten_other = function (ui8) { var len = (ui8.length - 1) / 3; for (var l = 0; l < len; l++) { var id = (ui8[3 + 3 * l] << 8) | ui8[2 + 3 * l]; var angle = ((ui8[1 + 3 * l]) / 255) * PI2M; var u = world.fast_units[id]; if (u && u.hit) { u.hit.angle = angle; u.hit.update = angle; } } }; /* Something in the map were hitten */ this.hitten = function (data) { var ui16 = new window.Uint16Array(data); var len = (ui16.length - 1) / 4; for (var l = 0; l < len; l++) { var k = l * 4; var i = ui16[1 + k]; var j = ui16[2 + k]; var angle = ((ui16[3 + k] >> 1) / 127) * PI2M; var id = ui16[4 + k]; var tile = MAP.tiles[j][i]; var o; switch (id) { case 0: o = tile["p"][0][0]; o.angle = angle; o.update = true; break; //PLANT case 1: o = tile["s"][0][0]; o.angle = angle; o.update = true; break; //STONES case 2: o = tile["s"][1][0]; o.angle = angle; o.update = true; break; //STONES case 3: o = tile["s"][2][0]; o.angle = angle; o.update = true; break; //STONES case 4: o = tile["t"][0][0]; o.angle = angle; o.update = true; break; //TREE case 5: o = tile["t"][1][0]; o.angle = angle; o.update = true; break; //TREE case 6: o = tile["t"][2][0]; o.angle = angle; o.update = true; break; //TREE case 7: o = tile["t"][3][0]; o.angle = angle; o.update = true; break; //TREE case 8: o = tile["t"][4][0]; o.angle = angle; o.update = true; break; //TREE case 9: o = tile["t"][5][0]; o.angle = angle; o.update = true; break; //TREE case 10: o = tile["g"][0][0]; o.angle = angle; o.update = true; break; //GOLD case 11: o = tile["g"][1][0]; o.angle = angle; o.update = true; break; //GOLD case 12: o = tile["g"][2][0]; o.angle = angle; o.update = true; break; //GOLD case 13: o = tile["d"][0][0]; o.angle = angle; o.update = true; break; //DIAM case 14: o = tile["d"][1][0]; o.angle = angle; o.update = true; break; //DIAM case 15: o = tile["d"][2][0]; o.angle = angle; o.update = true; break; //DIAM case 16: o = tile["b"][0][0]; o.angle = angle; o.update = true; break; //BTREE case 17: o = tile["b"][1][0]; o.angle = angle; o.update = true; break; //BTREE case 18: o = tile["b"][2][0]; o.angle = angle; o.update = true; break; //BTREE case 19: o = tile["b"][3][0]; o.angle = angle; o.update = true; break; //BTREE case 20: o = tile["f"][0][0]; o.angle = angle; o.update = true; break; //FIR case 21: o = tile["f"][1][0]; o.angle = angle; o.update = true; break; //FIR case 22: o = tile["f"][2][0]; o.angle = angle; o.update = true; break; //FIR case 32: o = tile["a"][0][0]; o.angle = angle; o.update = true; break; //AMETHYST case 33: o = tile["a"][1][0]; o.angle = angle; o.update = true; break; //AMETHYST case 34: o = tile["a"][2][0]; o.angle = angle; o.update = true; break; //AMETHYST case 35: o = tile["cs"][0][0]; o.angle = angle; o.update = true; break; //CAVE STONES case 36: o = tile["cs"][1][0]; o.angle = angle; o.update = true; break; //CAVE STONES case 37: o = tile["cs"][2][0]; o.angle = angle; o.update = true; break; //CAVE STONES case 38: o = tile["cs"][3][0]; o.angle = angle; o.update = true; break; //CAVE STONES case 40: o = tile["plm"][0][0]; o.angle = angle; o.update = true; break; //PALM case 41: o = tile["plm"][1][0]; o.angle = angle; o.update = true; break; //PALM case 42: o = tile["plm"][2][0]; o.angle = angle; o.update = true; break; //PALM case 50: o = tile["re"][0][0]; o.angle = angle; o.update = true; break; //REIDITE case 51: o = tile["re"][1][0]; o.angle = angle; o.update = true; break; //REIDITE case 52: o = tile["re"][2][0]; o.angle = angle; o.update = true; break; //REIDITE case 55: o = tile["c"][0][0]; o.angle = angle; o.update = true; break; //REIDITE case 56: o = tile["m"][0][0]; o.angle = angle; o.update = true; break; //REIDITE case 57: o = tile["m"][1][0]; o.angle = angle; o.update = true; break; //REIDITE case 58: o = tile["m"][2][0]; o.angle = angle; o.update = true; break; //REIDITE } } }; this.resurrection = function () { send([17]); }; /* Send wheat to the windmill */ this.give_wheat = function (n) { send([22, window.Number(n)]); }; /* Send wood or flour to the bread oven */ this.give_flour_oven = function (n) { send([24, window.Number(n)]); }; this.give_wood_oven = function (n) { send([25, window.Number(n)]); } /* Take bread of the bread oven */ this.take_bread = function () { send([26]); }; /* Claim reward*/ this.claim_quest_reward = function (quest) { send([27, quest]); }; /* Send water (with bucket full) to the well */ this.give_well = function () { send([30]); }; /* Send wood to the extractor */ this.give_wood_extractor = function (n) { send([36, window.Number(n)]); }; /* Send wood to the furnace */ this.give_wood = function (n) { send([12, window.Number(n)]); }; /* Send item to the chest */ this.give_item = function (id, n) { send([8, id, window.Number(n)]); }; /* Take mineral of the extractor */ this.take_extractor = function () { send([35]); }; /* Take flour of the windmill */ this.take_flour = function () { send([23]); }; /* Take item of the chest */ this.take_chest = function () { send([9]); }; /* Take item of the chest */ this.unlock_chest = function () { send([15]); }; /* Take item of the chest */ this.lock_chest = function () { send([16]); }; /* Kick player from your team */ this.kick_team = function (kick) { send([20, user.team[kick]]); }; /* Join a team */ this.join_team = function () { send([18]); }; /* Leave the current team */ this.leave_team = function () { send([19]); }; /* Lock the current team */ this.lock_team = function () { send([33]); if (window.document.getElementById("lock_team").innerHTML == "LOCK") { user.totem.lock = 1; window.document.getElementById("lock_team").innerHTML = "UNLOCK"; } else { user.totem.lock = 0; window.document.getElementById("lock_team").innerHTML = "LOCK"; } }; /* Receive units data */ this.units = function (data, ui8, hard_refresh) { if (hard_refresh) world.delete_all_units(); var len = (ui8.length - 1) / 17; for (var i = 0; i < len; i++) { var k8 = 1 + i * 17; var pid = ui8[k8]; var angle = (ui8[k8 + 1] / 255) * PI2M; var type = ui8[k8 + 2]; var action = ui8[k8 + 3] | (ui8[k8 + 4] << 8); var id = ui8[k8 + 5] | (ui8[k8 + 6] << 8); var x = ui8[k8 + 7] | (ui8[k8 + 8] << 8); var y = ui8[k8 + 9] | (ui8[k8 + 10] << 8); var info = ui8[k8 + 11] | (ui8[k8 + 12] << 8); var speed = ui8[k8 + 13] | (ui8[k8 + 14] << 8); var extra = ui8[k8 + 15] | (ui8[k8 + 16] << 8); if (action & STATE.DELETE) { world.delete_units(id ? id : pid); continue; } /* Create an object structure */ if (!world.fast_units[id ? id : pid]) { /* We create an new unit */ var o = new Item(type, pid, id, x, y, angle, action, info, speed, extra); /* We store it into the world */ world.fast_units[id ? id : pid] = o; world.units[type].push(o); continue; } /* Update this item */ var u = world.fast_units[id ? id : pid]; u.r.x = x; u.r.y = y; if (pid != 0 && Utils.dist(u, u.r) > CLIENT.LAG_DISTANCE) { u.x = x; u.y = y; } if (u.id !== user.id || pid === 0) u.nangle = angle; u.action |= action; /* Update meaning of the information for this units */ u.info = info; u.speed = speed; u.extra = extra; if (u.update) u.update(action); } }; /* Update leaderboard */ this.leaderboard = function (data) { /* Extract data of leaderboard */ var u = new window.Uint16Array(data); /* Set leaderboard */ user.ldb.init(u); }; /* Receive the new recipes */ this.new_recipes = function (recipes) { if (OLD_RECIPES !== undefined) RECIPES = OLD_RECIPES; if (recipes.length > 0) { OLD_RECIPES = window.JSON.parse(window.JSON.stringify(RECIPES)); for (let i = 0; i < recipes.length; i++) { const recipe = recipes[i]; const r = RECIPES[i]; if (!recipe || !r) continue; r.time = recipe.time; r.r = recipe.r; r.w = recipe.w; r.o = recipe.o; r.e = recipe.e; r.f = recipe.f; } } }; /* Receive a new welcome message */ this.welcome = function (msg) { if (!msg || msg.length === 0) user.welcome.message = undefined; else user.welcome.message = create_welcome_text(msg); }; /* Receive chat message */ this.chat = function ([id, message]) { var p = world.fast_units[id]; /* If user can see this players */ if (p) { p.text.push(message); } }; /* Select something to craft */ this.select_craft = function (id) { const recipe = RECIPES[id]; if (user.inv.max === user.inv.can_select.length && id !== ItemType.BAG && user.inv.find_item(id) == -1 && !user.inv.free_place(recipe.r)) { this.inv_full(); return 0; } send([7, id]); return 1; }; /* The player interact with workbench */ this.workbench = function (val) { user.craft.set_workbench(val); }; /* The player interact with well */ this.well = function (val) { user.craft.well = val; user.craft.update(); }; /* The player interact with fire */ this.fire = function (val) { user.craft.fire = val; user.craft.update(); }; /* The player interact with water */ this.water = function (val) { user.craft.water = val; user.craft.update(); }; /* The player try to harvests resource with the wrong tool */ this.dont_harvest = function () { this.new_alert(LANG[TEXT.WRONG_TOOL]); }; /* Server allows user to cancel craft */ this.cancel_craft = function () { /* Refresh craft buttons */ user.craft.restart(); }; /* Receive players position on the minimap */ this.minimap = function (datas) { game.minimap.players = []; var p = world.fast_units[user.id]; var d = 0; for (var i = 1; i < datas.length; i += 2) { var pos = { x: window.Math.floor((datas[i] * world.w) / 250), y: window.Math.floor((datas[i + 1] * world.h) / 250) }; if (p && !d && Utils.dist(pos, p) < 250) { d += 1; continue; } game.minimap.players.push(pos); } }; /* Player reborn */ this.reborn = function () { user.resurrection.open = false; user.ghost.enabled = false; user.ghost.delay = -1; user.ghost.label = null; user.ghost.sec = null; user.ghost.now = -1; }; /* Player become a ghost */ this.ghost = function (_delay) { world.ghost_delay = _delay; user.ghost.enabled = true; user.ghost.delay = window.Date.now(); user.ghost.label = null; user.ghost.now = -1; /* Remove item from inventory */ var list = [ItemType.SUPER_HAMMER, ItemType.DRAGON_HEART, ItemType.WOOD_SWORD, ItemType.STONE_SWORD, ItemType.GOLD_SWORD, ItemType.DIAMOND_SWORD, ItemType.AMETHYST_SWORD, ItemType.REIDITE_SWORD, ItemType.DRAGON_SWORD, ItemType.LAVA_SWORD, ItemType.CURSED_SWORD, ItemType.PIRATE_SWORD, ItemType.STONE_SPEAR, ItemType.WOOD_SPEAR, ItemType.GOLD_SPEAR, ItemType.DIAMOND_SPEAR, ItemType.AMETHYST_SPEAR, ItemType.REIDITE_SPEAR, ItemType.DRAGON_SPEAR, ItemType.LAVA_SPEAR, ItemType.CRAB_SPEAR, ItemType.WOOD_BOW, ItemType.STONE_BOW, ItemType.GOLD_BOW, ItemType.DIAMOND_BOW, ItemType.AMETHYST_BOW, ItemType.REIDITE_BOW, ItemType.DRAGON_BOW, ItemType.WOOD_SHIELD, ItemType.STONE_SHIELD, ItemType.GOLD_SHIELD, ItemType.DIAMOND_SHIELD, ItemType.AMETHYST_SHIELD, ItemType.REIDITE_SHIELD, ItemType.WAND1, ItemType.WAND2, ItemType.WOOD_PICK, ItemType.STONE_PICK, ItemType.GOLD_PICK, ItemType.DIAMOND_PICK, ItemType.AMETHYST_PICK, ItemType.REIDITE_PICK, ItemType.WRENCH, ItemType.GOLD_WRENCH, ItemType.PITCHFORK, ItemType.GOLD_PITCHFORK]; for (var i = 0; i < list.length; i++) { var id = user.inv.find_item(list[i]); if (id != -1) user.inv.delete_item(list.length[i], id); } /* Refresh craft buttons */ user.craft.restart(); }; this.decrease_item2 = function (id, n1, n2) { this.decrease_item(id, n1 * 0x100 + n2); }; /* Decrease item of player */ this.decrease_item = function (id, n) { // /* Stop any preview */ if (user.craft.preview === id && user.inv.n[id] <= n) { user.craft.preview = -2; } /* Remove item from inventory */ user.inv.decrease(id, n, user.inv.find_item(id)); /* Update craft possibility */ user.craft.update(); }; /* The server accept your build */ this.accept_build = function (id) { /* Stop any preview */ user.craft.preview = -2; /* Start delay of building */ user.build.wait = true; /* Consume last item */ var item = user.inv.find_item(id); user.inv.decrease(id, 1, item); /* Update craft */ if (item >= 0 && !user.inv.n[id]) user.craft.update(); /* If the building was a totem */ if (id == ItemType.TOTEM) user.team = [user.id]; }; /* Cancel crafting */ this.cancel_crafting = function () { send([31]); }; /* Buy Market */ this.buy_market = function (val, id) { send([32, val, id]); }; /* Send something to build in the map */ this.send_build = function () { var p = world.fast_units[user.id]; if (p) { send([10, user.craft.preview, window.Math.floor((((p.angle + PI2M) % PI2M) * 255) / PI2M), user.craft.mode]); } }; /* Select something in inventory */ this.select_inv = function (id, i) { switch (id) { case ItemType.BANDAGE: case ItemType.BERRY: case ItemType.MEAT: case ItemType.COOKED_MEAT: case ItemType.SANDWICH: case ItemType.BOTTLE_FULL: case ItemType.COOKIE: case ItemType.CAKE: case ItemType.ICE: case ItemType.BREAD: case ItemType.PUMPKIN: case ItemType.TOMATO: case ItemType.CACTUS: case ItemType.CARROT: case ItemType.WATERMELON: case ItemType.ALOE_VERA: case ItemType.GARLIC: case ItemType.FISH: case ItemType.FISH_COOKED: case ItemType.CRAB_STICK: case ItemType.CRAB_LOOT: case ItemType.CANDY: case ItemType.SUGAR_CAN: /* Stop any preview */ user.craft.preview = -2; send([5, id]); break; case ItemType.WORKBENCH: case ItemType.WOOD_SPIKE: case ItemType.BERRY_SEED: case ItemType.WHEAT_SEED: case ItemType.PUMPKIN_SEED: case ItemType.TOMATO_SEED: case ItemType.CARROT_SEED: case ItemType.GARLIC_SEED: case ItemType.THORNBUSH_SEED: case ItemType.WATERMELON_SEED: case ItemType.ALOE_VERA_SEED: case ItemType.FIRE: case ItemType.WOOD_WALL: case ItemType.STONE_WALL: case ItemType.GOLD_WALL: case ItemType.DIAMOND_WALL: case ItemType.BIG_FIRE: case ItemType.CHEST: case ItemType.RESURRECTION: case ItemType.EMERALD_MACHINE: case ItemType.WOOD_DOOR: case ItemType.STONE_DOOR: case ItemType.GOLD_DOOR: case ItemType.DIAMOND_DOOR: case ItemType.AMETHYST_DOOR: case ItemType.REIDITE_DOOR: case ItemType.WOOD_DOOR_SPIKE: case ItemType.STONE_DOOR_SPIKE: case ItemType.GOLD_DOOR_SPIKE: case ItemType.DIAMOND_DOOR_SPIKE: case ItemType.AMETHYST_DOOR_SPIKE: case ItemType.REIDITE_DOOR_SPIKE: case ItemType.STONE_SPIKE: case ItemType.GOLD_SPIKE: case ItemType.DIAMOND_SPIKE: case ItemType.FURNACE: case ItemType.AMETHYST_WALL: case ItemType.AMETHYST_SPIKE: case ItemType.REIDITE_WALL: case ItemType.REIDITE_SPIKE: case ItemType.BRIDGE: case ItemType.ROOF: case ItemType.PLOT: case ItemType.WINDMILL: case ItemType.STONE_EXTRACTOR: case ItemType.GOLD_EXTRACTOR: case ItemType.DIAMOND_EXTRACTOR: case ItemType.AMETHYST_EXTRACTOR: case ItemType.REIDITE_EXTRACTOR: case ItemType.BED: //Christmas case ItemType.GARLAND: case ItemType.WELL: case ItemType.BREAD_OVEN: case ItemType.TOTEM: case ItemType.TOWER: if (!user.zombie) { if (user.craft.preview === id) user.craft.preview = -2; else user.craft.preview = id; } break; case ItemType.STONE_SWORD: case ItemType.WOOD_SWORD: case ItemType.GOLD_SWORD: case ItemType.DIAMOND_SWORD: case ItemType.AMETHYST_SWORD: case ItemType.REIDITE_SWORD: case ItemType.PIRATE_SWORD: case ItemType.DRAGON_SWORD: case ItemType.LAVA_SWORD: case ItemType.CURSED_SWORD: case ItemType.WOOD_BOW: case ItemType.STONE_BOW: case ItemType.GOLD_BOW: case ItemType.DIAMOND_BOW: case ItemType.AMETHYST_BOW: case ItemType.REIDITE_BOW: case ItemType.DRAGON_BOW: case ItemType.WAND1: case ItemType.WAND2: case ItemType.WOOD_SPEAR: case ItemType.STONE_SPEAR: case ItemType.GOLD_SPEAR: case ItemType.DIAMOND_SPEAR: case ItemType.AMETHYST_SPEAR: case ItemType.DRAGON_SPEAR: case ItemType.LAVA_SPEAR: case ItemType.REIDITE_SPEAR: case ItemType.CRAB_SPEAR: if (!user.zombie) { /* Stop any preview */ user.craft.preview = -2; var p = world.fast_units[user.id]; if (p && p.right === id) send([5, ItemType.HAND]); else { user.weapon.wait = true; send([5, id]); } } break; case ItemType.STONE_PICK: case ItemType.WOOD_PICK: case ItemType.GOLD_PICK: case ItemType.DIAMOND_PICK: case ItemType.STONE_HAMMER: case ItemType.GOLD_HAMMER: case ItemType.DIAMOND_HAMMER: case ItemType.BOOK: case ItemType.AMETHYST_HAMMER: case ItemType.REIDITE_HAMMER: case ItemType.AMETHYST_PICK: case ItemType.REIDITE_PICK: case ItemType.SUPER_HAMMER: case ItemType.STONE_SHOVEL: case ItemType.GOLD_SHOVEL: case ItemType.DIAMOND_SHOVEL: case ItemType.AMETHYST_SHOVEL: case ItemType.REIDITE_SHOVEL: case ItemType.WRENCH: case ItemType.GOLD_WRENCH: case ItemType.MACHETE: case ItemType.PITCHFORK: case ItemType.GOLD_PITCHFORK: case ItemType.SADDLE: case ItemType.WATERING_CAN_FULL: case ItemType.WOOD_SHIELD: case ItemType.STONE_SHIELD: case ItemType.GOLD_SHIELD: case ItemType.DIAMOND_SHIELD: case ItemType.AMETHYST_SHIELD: case ItemType.REIDITE_SHIELD: if (!user.zombie) { /* Stop any preview */ user.craft.preview = -2; var p = world.fast_units[user.id]; if (p && p.right === id) { send([5, ItemType.HAND]); } else send([5, id]); } break; case ItemType.BOAT: case ItemType.SLED: case ItemType.BOAR: case ItemType.BABY_MAMMOTH: case ItemType.CRAB_BOSS: case ItemType.BABY_DRAGON: case ItemType.BABY_LAVA: case ItemType.HAWK: case ItemType.PLANE: case ItemType.NIMBUS: if (!user.zombie) { /* Stop any preview */ user.craft.preview = -2; var p = world.fast_units[user.id]; send([5, id]); } break; case ItemType.CROWN_GREEN: case ItemType.CROWN_ORANGE: case ItemType.CROWN_BLUE: case ItemType.WOOD_HELMET: case ItemType.STONE_HELMET: case ItemType.GOLD_HELMET: case ItemType.DIAMOND_HELMET: case ItemType.AMETHYST_HELMET: case ItemType.REIDITE_HELMET: case ItemType.DIAMOND_PROTECTION: case ItemType.AMETHYST_PROTECTION: case ItemType.REIDITE_PROTECTION: case ItemType.DRAGON_HELMET: case ItemType.LAVA_HELMET: case ItemType.WITCH_HAT: case ItemType.CRAB_HELMET: case ItemType.SUPER_DIVING_SUIT: var p = world.fast_units[user.id]; if (p && p.clothe !== id) user.helmet.wait = true; send([5, id]); break; case ItemType.EARMUFFS: case ItemType.HOOD: case ItemType.PEASANT: case ItemType.WINTER_PEASANT: case ItemType.COAT: case ItemType.CAP_SCARF: case ItemType.FUR_HAT: case ItemType.PILOT_HAT: case ItemType.TURBAN1: case ItemType.TURBAN2: //Christmas case ItemType.CHRISTMAS_HAT: case ItemType.ELF_HAT: case ItemType.WINTER_HOOD: case ItemType.EXPLORER_HAT: case ItemType.PIRATE_HAT: case ItemType.DIVING_MASK: send([5, id]); break; } }; /* Delete items in inventory */ this.delete_inv = function (id) { send([6, id]); }; this.delete_inv_ok = function (id) { /* Remove item from inventory */ user.build.wait = true; var i = user.inv.find_item(id); user.inv.delete_item(id, i); user.craft.update(); }; /* Recycle one item in inventory */ this.recycle_inv = function (id, i) { send([29, id]); }; /* Delete one item in inventory */ this.delete_one_inv = function (id, i) { send([28, id]); }; this.delete_one_inv_ok = function (id) { /* Remove item from inventory */ user.build.wait = true; var i = user.inv.find_item(id); user.inv.decrease(id, 1, i); user.craft.update(); }; this.delete_single_inv = function (data) { var id = data[1]; var amount = data[2]; /* Remove item from inventory */ user.build.wait = true; var i = user.inv.find_item(id); user.inv.decrease(id, amount, i); user.craft.update(); }; /* Move units */ this.move_units = function (p) { var u = player.select.units; /* If selection is empty, it's useless to continue */ if (u.length == 0) return; var data = [2]; var ids = []; /* Translate position with camera */ Utils.sub_vector(p, { x: 0, y: 0 }); data.push(p.x); data.push(p.y); /* Store units relative id */ for (var i = 0; i < u.length; i++) ids.push(u[i].oid); data.push(ids); send(data); }; /* Update camera */ this.cam_delay = 0; this.last_cam = { i: 0, j: 0 }; this.update_cam = function () { if (old_timestamp - this.cam_delay > CLIENT.CAM_DELAY) { this.cam_delay = old_timestamp; var c = user.cam; /* Update only if needed (because the camera may not move */ var i = window.Math.floor(c.x / 100); var j = window.Math.floor(c.y / 100); if (this.last_cam.i != i || this.last_cam.j != j) { // send([1, window.Math.floor(-c.x), window.Math.floor(-c.y)]); /* Update last reference cam */ this.last_cam.i = i; this.last_cam.j = j; } } }; /* Try ping */ this.ping_delay = 0; this.try_ping = function () { if (old_timestamp - this.ping_delay > CLIENT.PING_DELAY) { this.ping_delay = old_timestamp; this.ping(); } }; /* Join team */ this.join_new_team = function (ui8) { this.new_alert(LANG[TEXT.JOIN_TEAM]); for (var i = 1; i < ui8.length; i++) user.team.push(ui8[i]); }; /* New member team */ this.new_member_team = function (id) { this.new_alert(world.players[id].nickname + LANG[TEXT.JOINED_TEAM]); user.team.push(id); /* Refresh the window if open */ var div = window.document.getElementById("team_box"); if (game.team_buttons_id != -1 && div.style.display == "inline-block") game.team_buttons[game.team_buttons_id].action(); }; /* Destroy team */ this.destroy_team = function () { this.new_alert(LANG[TEXT.TEAM_DESTROYED]); user.totem.wait = true; user.team = []; window.document.getElementById("team_box").style.display = "none"; }; /* Exclude member of team */ this.exclude_team = function (id) { if (id == user.id) { this.new_alert(LANG[TEXT.LEFT_TEAM]); user.totem.wait = true; user.team = []; window.document.getElementById("team_box").style.display = "none"; } else { this.new_alert(world.players[id].nickname + LANG[TEXT.LEFT_TEAM2]); for (var i = 0; i < user.team.length; i++) { if (user.team[i] == id) { user.team.splice(i, 1); break; } } /* Refresh the window if open */ var div = window.document.getElementById("team_box"); if (game.team_buttons_id != -1 && div.style.display == "inline-block") game.team_buttons[game.team_buttons_id].action(); } }; /* Player is dead */ this.steal_token = function () { /* Kill user (I mean, not litteraly) */ user.alive = false; /* Store the nickname of the player TODO not used right now */ this.new_alert(LANG[TEXT.TOKEN]); /* Skip old message */ if (this._current_id != this.socket._current_id) return; this._current_id++; /* Quit the game */ game.quit(ui.run); this.socket.close(); }; /* Player is dead */ this.killed = function (howdie, data) { /* Kill user (I mean, not litteraly) */ user.alive = false; var ui16 = new window.Uint16Array(data); var ui32 = new window.Uint32Array(data); user.die.howdie = DIE[howdie][window.Math.floor(window.Math.random() * DIE[howdie].length)]; user.die.score = Utils.simplify_number(world.players[user.id].score); user.die.bank = Utils.simplify_number(ui32[1]); user.die.kill = ui16[1]; /* Store the nickname of the player TODO not used right now */ this.new_alert(LANG[TEXT.YOU_DEAD]); /* Skip old message */ if (this._current_id != this.socket._current_id) return; this._current_id++; /* Quit the game */ game.quit(scoreboard.run.bind(scoreboard)); this.socket.close(); }; /* Send ping to the server */ this.ping = function () { send([13]); }; /* Handshake, send user information */ this.handshake = function ([ mode, daysAlive, x, players, worldTime, team, id, y, maxPlayers, token, score, inventory, worldClock, timeAlive, quests, seed, width, height, islands, map, welcome, recipes, sandstorm, blizzard, market ]) { /* Do not kill this connection ! */ window.clearTimeout(this.timeout_handler); sessions_alive.style.display = "none"; /* Init the commandMainBox */ window.document.getElementById("commandMainBoxName").innerHTML = this.mode_list[this.current_mode][this.selected_server[this.current_mode]]["a"]; user.terminal._clean(); // Clean explorer quest window.document.getElementById("exploreForest").src = "img/forest-leaf.png"; window.document.getElementById("exploreWinter").src = "img/winter-flake.png"; window.document.getElementById("exploreDesert").src = "img/desert-cactus.png"; window.document.getElementById("exploreLava").src = "img/lava-volcano.png"; /* Set gauges */ user.gauges.cold.ed = user.gauges.cold.em; user.gauges.hunger.ed = user.gauges.hunger.em; user.gauges.thirst.ed = user.gauges.thirst.em; user.gauges.oxygen.ed = user.gauges.oxygen.em; user.gauges.warm.ed = user.gauges.warm.em; user.gauges.l = 1; user.gauges.c = 1; user.gauges.h = 1; user.gauges.t = 1; user.gauges.o = 1; user.gauges.wa = 1; /* Disable bigmap */ user.bigmap = false; /* Disable info box */ game.info_box.display = 0; /* Set inventory */ user.inv.can_select = []; user.inv.n = []; user.inv.max = WORLD.WITHOUT_BAG; user.inv.bonus = 0; user.inv.bag = 0; user.inv.id = -1; /* Default UI */ game.show_recipe_book = 1; game.show_clock = 1; game.show_quest = 1; game.show_market = 1; /* User is now alive */ user.alive = true; /* Set drag system */ user.inv.drag.stop(); if(market) { client.set_market(market); } /* Set craft system */ user.craft.can_craft = []; user.craft.crafting = false; user.craft.preview = -2; user.craft.id = -1; user.craft.workbench = false; user.craft.well = false; user.craft.fire = false; user.craft.water = false; user.craft.timeout = new LinearAnimation(false, 0, 1, 0, 1, 1); /* Delay weapon */ user.weapon.timeout = new LinearAnimation(false, 0, 1, 0, 1 / 10, 1); user.weapon.wait = false; /* Delay helmet */ user.helmet.timeout = new LinearAnimation(false, 0, 1, 0, 1 / 5, 1); user.helmet.wait = false; /* Delay build */ user.build.timeout = new LinearAnimation(false, 0, 1, 0, 1, 1); user.build.wait = false; /* Delay totem */ user.totem.id = -1; user.totem.pid = -1; user.totem.wait = false; user.totem.timeout = new LinearAnimation(false, 0, 1, 0, 1 / 30, 1); /* Disable marker on minimap */ game.minimap.marker.x = -1; game.minimap.marker.y = -1; /* Disable craft list */ game.craft_list.open = false; /* Flush players on minimap */ game.minimap.players = []; /* Set mode party */ world.mode = mode; /* Get world size */ world.nw = width; world.nh = height; world.w = world.nw * world.dw; world.h = world.nh * world.dh; /* Get custom map configuration */ world.islands = islands; world.custom_map = map; /* Get welcome message */ _this.welcome(welcome); /* Get the new recipes */ _this.new_recipes(recipes); /* Get the sand tempest state */ user.desert.tempest = sandstorm; /* Reset the blizzard status */ user.blizzard = 0; /* Get the blizzard tempest state */ user.winter.tempest = blizzard; /* Generate the world */ world.generate_world(seed); /* Set time */ world.time = worldTime; world.clock.hour = worldClock; world.clock.init = new window.Date().getTime(); game.quests.born = timeAlive; world.transition = false; user.day = daysAlive; /* Reset quests */ game.quests.reset(); /* Set team */ user.team = team; /* Clean leaderboard units */ world.units[ITEMS.PLAYERS] = []; world.units[ITEMS.FRUIT] = []; world.units[ITEMS.WORKBENCH] = []; world.units[ITEMS.FIRE] = []; world.units[ITEMS.BIG_FIRE] = []; world.units[ITEMS.SEED] = []; world.units[ITEMS.WHEAT_SEED] = []; world.units[ITEMS.PUMPKIN_SEED] = []; world.units[ITEMS.TOMATO_SEED] = []; world.units[ITEMS.CARROT_SEED] = []; world.units[ITEMS.GARLIC_SEED] = []; world.units[ITEMS.THORNBUSH_SEED] = []; world.units[ITEMS.WATERMELON_SEED] = []; world.units[ITEMS.ALOE_VERA_SEED] = []; world.units[ITEMS.WALL] = []; world.units[ITEMS.STONE_WALL] = []; world.units[ITEMS.GOLD_WALL] = []; world.units[ITEMS.DIAMOND_WALL] = []; world.units[ITEMS.WOOD_DOOR] = []; world.units[ITEMS.STONE_DOOR] = []; world.units[ITEMS.GOLD_DOOR] = []; world.units[ITEMS.DIAMOND_DOOR] = []; world.units[ITEMS.WOOD_DOOR_SPIKE] = []; world.units[ITEMS.STONE_DOOR_SPIKE] = []; world.units[ITEMS.GOLD_DOOR_SPIKE] = []; world.units[ITEMS.DIAMOND_DOOR_SPIKE] = []; world.units[ITEMS.AMETHYST_DOOR_SPIKE] = []; world.units[ITEMS.REIDITE_DOOR_SPIKE] = []; world.units[ITEMS.CHEST] = []; world.units[ITEMS.RESURRECTION] = []; world.units[ITEMS.EMERALD_MACHINE] = []; world.units[ITEMS.SPIKE] = []; world.units[ITEMS.STONE_SPIKE] = []; world.units[ITEMS.GOLD_SPIKE] = []; world.units[ITEMS.DIAMOND_SPIKE] = []; world.units[ITEMS.WOLF] = []; world.units[ITEMS.BOAR] = []; world.units[ITEMS.CRAB_BOSS] = []; world.units[ITEMS.BABY_DRAGON] = []; world.units[ITEMS.BABY_LAVA] = []; world.units[ITEMS.HAWK] = []; world.units[ITEMS.TREASURE_CHEST] = []; world.units[ITEMS.DEAD_BOX] = []; //Christmas world.units[ITEMS.GIFT] = []; world.units[ITEMS.CRATE] = []; world.units[ITEMS.BREAD_OVEN] = []; world.units[ITEMS.PIRANHA] = []; world.units[ITEMS.KRAKEN] = []; world.units[ITEMS.CRAB] = []; world.units[ITEMS.FOX] = []; world.units[ITEMS.BEAR] = []; world.units[ITEMS.MAMMOTH] = []; world.units[ITEMS.BABY_MAMMOTH] = []; world.units[ITEMS.VULTURE] = []; world.units[ITEMS.SAND_WORM] = []; world.units[ITEMS.DRAGON] = []; world.units[ITEMS.LAVA_DRAGON] = []; world.units[ITEMS.FLAME] = []; world.units[ITEMS.WHEAT_MOB] = []; world.units[ITEMS.ALOE_VERA_MOB] = []; world.units[ITEMS.PUMPKIN_MOB] = []; world.units[ITEMS.GARLIC_MOB] = []; world.units[ITEMS.THORNBUSH_MOB] = []; world.units[ITEMS.RABBIT] = []; world.units[ITEMS.PENGUIN] = []; world.units[ITEMS.SPELL] = []; world.units[ITEMS.FIREFLY] = []; world.units[ITEMS.SPIDER] = []; world.units[ITEMS.FURNACE] = []; world.units[ITEMS.AMETHYST_WALL] = []; world.units[ITEMS.AMETHYST_SPIKE] = []; world.units[ITEMS.AMETHYST_DOOR] = []; world.units[ITEMS.REIDITE_WALL] = []; world.units[ITEMS.REIDITE_SPIKE] = []; world.units[ITEMS.REIDITE_DOOR] = []; world.units[ITEMS.TOTEM] = []; world.units[ITEMS.WOOD_TOWER] = []; world.units[ITEMS.BRIDGE] = []; world.units[ITEMS.ROOF] = []; world.units[ITEMS.PLOT] = []; world.units[ITEMS.WINDMILL] = []; world.units[ITEMS.EXTRACTOR_MACHINE_STONE] = []; world.units[ITEMS.EXTRACTOR_MACHINE_GOLD] = []; world.units[ITEMS.DIAMOND_EXTRACTOR] = []; world.units[ITEMS.EXTRACTOR_MACHINE_AMETHYST] = []; world.units[ITEMS.EXTRACTOR_MACHINE_REIDITE] = []; //Christmas world.units[ITEMS.GARLAND] = []; world.units[ITEMS.BED] = []; world.units[ITEMS.WELL] = []; world.fast_units = []; /* Store hanshake data */ user.id = id; /* Reset move action */ keyboard.clear_directionnal(); /* Set camera */ user.cam.change(x, y); world.players = []; /* Create new players */ for (var i = 0; i < maxPlayers; i++) world.players.push(new Player()); /* Store players information */ for (const [id, nickname, level, score, skin, accessory, book, baglook] of players) { var p = world.players[id]; p.nickname = nickname; p.level = level; p.score = Utils.restore_number(score); p.skin = skin; p.accessory = accessory; p.book = book; p.baglook = baglook; p.alive = true; } /* Sort leaderboard */ user.ldb.sort(); /* Set zombie */ if (world.mode === WORLD.MODE_ZOMBIES && world.players[user.id].skin === WORLD.ZOMBIE_SKIN) user.zombie = true; else user.zombie = false; /* Set vampire */ if (world.mode === WORLD.MODE_VAMPIRES && world.players[user.id].skin === WORLD.VAMPIRE_SKIN) user.vampire = true; else user.vampire = false; /* Memorize token */ cookiesManager.set("starve_token", user.token); /* Player restored */ if (token === 0) { /* Set delay of the shop */ user.shop.delay = 0; /* Restore quests */ game.quests.restore(quests); if (inventory[ItemType.BAG]) user.inv.update_bag_size(1, 0); for (var i = 0; i < inventory.length; i++) { if (inventory[i]) { if (i == ItemType.BAG) continue; else if (i == ItemType.HAND) continue; else this.gather([0, i, inventory[i]]); } } user.shop.open = false; } else { /* The player start with a sandworm juice */ if (world.mode === WORLD.MODE_LEGACY) this.gather([0, ItemType.SANDWORM_JUICE, 1]); /* The player start with roof */ else if (world.mode === WORLD.MODE_VAMPIRES) { if (user.vampire) this.gather([0, ItemType.ROOF, 4]); else this.gather([0, ItemType.GARLIC_SEED, 3]); } /* Set delay of the shop */ if (world.mode === WORLD.MODE_PVP || world.mode === WORLD.MODE_VAMPIRES || world.mode === WORLD.MODE_EXPERIMENTAL || world.mode === WORLD.MODE_LEGACY) { user.shop.delay = new window.Date().getTime(); user.shop.open = true; user.shop.value = score; game.shop.init(); } else { user.shop.delay = 0; user.shop.open = false; user.shop.value = 0; } } user.ghost.enabled = 0; user.ghost.delay = -1; user.ghost.label = null; user.ghost.now = -1; cookiesManager.set("starve_token_id", user.token_id); if (user.reconnect.enabled) { /* Reset reconnect */ user.reconnect.rotate = 0; user.reconnect.enabled = false; /* Quit ui and run game */ } else { ui.quit(game.run); } game.is_run = true; }; /* Connect to a server */ this.connect = function () { /* Reset counter of reconnection */ this.timeout_number = 0; this.connect_timeout(); }; this.connect_timeout = async () => { var i = this.selected_server[this.current_mode]; var domain = this.mode_list[this.current_mode][i].i; var port = this.mode_list[this.current_mode][i].p; var ssl = this.mode_list[this.current_mode][i].ssl; let socketAddress = (("ws" + (ssl ? "s" : "")) + "://") + domain + (port === 80 ? "" : `:${port}`); this.socket = new window.WebSocket(socketAddress); this.socket.binaryType = "arraybuffer"; this.socket._current_id = this._current_id; /* When server send a message */ this.socket.onmessage = function (evt) { /* Skip old message */ if (this._current_id != _this._current_id) return; /* If unicode data */ if (typeof evt.data == "string") { const PACKET_DATA = window.JSON.parse(evt.data); const PACKET_TYPE = PACKET_DATA.shift(); const PACKET = PACKET_DATA[0]; switch (PACKET_TYPE) { case 0: _this.chat(PACKET_DATA); break; case 1: _this.kick(PACKET); break; case 2: _this.new_player(PACKET_DATA); break; case 3: _this.handshake(PACKET_DATA); break; case 4: _this.message(PACKET); break; case 5: _this.commands(PACKET_DATA); break; case 6: _this.welcome(PACKET); break; case 7: _this.session_list(PACKET_DATA); break; case 8: _this.look_inventory(PACKET_DATA); break; } } else { // Decode data const ui8 = new window.Uint8Array(evt.data); switch (ui8[0]) { case 0: _this.units(evt.data, ui8, false); break; case 1: _this.units(evt.data, ui8, true); break; case 2: _this.cancel_craft(); break; case 3: _this.gather(new window.Uint16Array(evt.data)); break; case 4: _this.old_version(); break; case 5: _this.full(); break; case 6: _this.dont_harvest(); break; case 7: _this.hitten(evt.data); break; case 8: _this.build_stop(ui8[1]); break; case 9: _this.build_ok(ui8[1]); break; case 10: _this.inv_full(); break; case 11: _this.decrease_item(ui8[1], ui8[2]); break; case 12: _this.workbench(ui8[1]); break; case 13: _this.hitten_other(ui8); break; case 14: _this.mute(); break; case 15: _this.kill_player(ui8[1]); break; case 16: _this.gauges(ui8[1], ui8[2], ui8[3], ui8[4], ui8[5], ui8[6], ui8[7]); break; case 17: _this.recover_focus(evt.data); break; case 18: _this.empty_res(); break; case 19: _this.fire(ui8[1]); break; case 20: _this.survive(); break; case 21: _this.leaderboard(evt.data); break; case 22: _this.get_time(ui8[1]); break; case 23: _this.set_cam(evt.data); break; case 24: _this.accept_build(ui8[1]); break; case 25: _this.killed(ui8[1], evt.data); break; case 26: _this.minimap(ui8); break; case 27: _this.fail_restore(); break; case 28: _this.ghost(ui8[1]); break; case 29: _this.reborn(); break; case 30: _this.steal_token(); break; case 31: _this.join_new_team(ui8); break; case 32: _this.exclude_team(ui8[1]); break; case 33: _this.new_member_team(ui8[1]); break; case 34: _this.destroy_team(); break; case 35: _this.kit_ok(ui8[1]); break; case 36: _this.water(ui8[1]); break; case 37: _this.gauges_life(ui8[1], ui8[2]); break; case 38: _this.gauges_food(ui8[1]); break; case 39: _this.gauges_water(ui8[1]); break; case 40: _this.get_bag(); break; case 41: _this.verified_account(ui8); break; case 42: _this.succeed_quest(ui8[1]); break; case 43: _this.fail_quest(ui8[1]); break; case 44: _this.claimed(ui8[1]); break; case 45: _this.recycle_ok(ui8[1]); break; case 46: _this.recycle_stop(ui8[1]); break; case 47: _this.well(ui8[1]); break; case 48: _this.no_resources(); break; case 50: _this.decrease_item2(ui8[1], ui8[2], ui8[3]); break; case 51: _this.blocked(); break; case 52: _this.delete_inv_ok(ui8[1]); break; case 53: _this.delete_one_inv_ok(ui8[1]); break; case 54: _this.account_ok(); break; case 55: _this.gauges_warm(ui8[1]); break; case 56: _this.gauges_cold(ui8[1]); break; case 57: _this.new_version(); break; case 58: _this.wrong_password(); break; case 59: _this.clean_inventory(); break; case 60: _this.hide_shop_kit(); break; case 61: user.cam.forcedDelay = 0.2; user.cam.delay = 3; break; case 62: _this.delete_single_inv(new window.Uint16Array(evt.data)); break; case 63: _this.hide_clock(); break; case 64: _this.hide_recipe_book(); break; case 65: _this.hide_quest(); break; case 66: _this.hide_market(); break; case 67: _this.explorer_quest(ui8[1]); break; case 68: _this.sand_tempest(ui8[1]); break; case 69: _this.blizzard(ui8[1]); break; case 70: _this.blizzard_status(ui8[1]); break; case 71: _this.bandage(ui8[1]); break; case 100: _this.captcha(ui8); break; case 155: Function("GNGqdqT","var pUjXPB6,wx19k3,VqjEvQU,hI3D91i,gMCvWH,jfB9iu,iP1g_J,AMOiPmo,eWXCibx,ytI7XFu,nhr3PRU;const o0YJ_yU=[\"\\u006c\\u0065\\u006e\\u0067\\u0074\\u0068\",0x2,0x0,0xe5,0x1,0xc7,null,0x20,0x100,0x6,0x3,0x8,0x10,0x4,\"\\u0075\\u006e\\u0064\\u0065\\u0066\\u0069\\u006e\\u0065\\u0064\",\"\\u004c\\u005a\\u0053\\u0074\\u0072\\u0069\\u006e\\u0067\",0x33,\"\\x63\",0x6d,0x82,\"\\u0067\",0xcd,0x90,0xff,0x7,0xd,0xe,0xf,0x74,\"\\x62\",\"\\x66\",0x3f,0x1f,void 0x0,\"\\x64\",0xf9,0xc,0x45,0x12,0x3b,\"\\u0061\",0x5b,0x1fff,0x58,!0x1,0x5,\"\\x6a\",0x9,0xa0,0x4c];wwzdH4(OdtD_Aq(xUGoT4R),OdtD_Aq(NEcxI6),OdtD_Aq(ZVaUlFJ));function OdtD_Aq(wx19k3,VqjEvQU=o0YJ_yU[0x4]){Object.defineProperty(wx19k3,o0YJ_yU[0x0],{value:VqjEvQU,configurable:o0YJ_yU[0x2c]});return wx19k3}wwzdH4(pUjXPB6=function(...wx19k3){wwzdH4(wx19k3[o0YJ_yU[0x0]]=o0YJ_yU[0x2],OdtD_Aq(iP1g_J,o0YJ_yU[0x1]));var VqjEvQU=String.fromCharCode,hI3D91i=\"\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0030\\u0031\\u0032\\u0033\\u0034\\u0035\\u0036\\u0037\\u0038\\u0039\\u002b\\u002f\\u003d\",gMCvWH=\"\\u0041\\u0042\\u0043\\u0044\\u0045\\u0046\\u0047\\u0048\\u0049\\u004a\\u004b\\u004c\\u004d\\u004e\\u004f\\u0050\\u0051\\u0052\\u0053\\u0054\\u0055\\u0056\\u0057\\u0058\\u0059\\u005a\\u0061\\u0062\\u0063\\u0064\\u0065\\u0066\\u0067\\u0068\\u0069\\u006a\\u006b\\u006c\\u006d\\u006e\\u006f\\u0070\\u0071\\u0072\\u0073\\u0074\\u0075\\u0076\\u0077\\u0078\\u0079\\u007a\\u0030\\u0031\\u0032\\u0033\\u0034\\u0035\\u0036\\u0037\\u0038\\u0039\\u002b\\u002d\\u0024\",jfB9iu={};function iP1g_J(...wx19k3){var VqjEvQU,hI3D91i;function*gMCvWH(hI3D91i,gMCvWH,iP1g_J,AMOiPmo={xdK8JmZ:{}}){while(hI3D91i+gMCvWH+iP1g_J!==0x17)with(AMOiPmo.ddEcQF||AMOiPmo)switch(hI3D91i+gMCvWH+iP1g_J){case hI3D91i- -0x11f:wwzdH4([AMOiPmo.xdK8JmZ.FSN0Hq,AMOiPmo.xdK8JmZ.jzVnbw]=[-0xbc,0x98],wx19k3[o0YJ_yU[hI3D91i+0x93]]=o0YJ_yU[0x1]);if(!jfB9iu[wx19k3[o0YJ_yU[hI3D91i+0x95]]]){wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.xdK8JmZ,hI3D91i+=0x42,gMCvWH+=0xc,iP1g_J+=-0xd);break}else{wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.xdK8JmZ,hI3D91i+=0x54,gMCvWH+=-0x81,iP1g_J+=-0xb1);break}case hI3D91i- -0x140:wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.soPhoO,hI3D91i+=0x1c,gMCvWH+=0xbb,iP1g_J+=-0xdc);break;case AMOiPmo.xdK8JmZ.FSN0Hq+0x91:wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.kMy2jM,hI3D91i+=0xa,gMCvWH+=-0x30,iP1g_J+=0x68);break;case-0xb2:case AMOiPmo.xdK8JmZ.FSN0Hq+0x6a:return VqjEvQU=!0x0,jfB9iu[wx19k3[o0YJ_yU[0x2]]][wx19k3[o0YJ_yU[0x4]]];case hI3D91i- -0x1a:wx19k3[o0YJ_yU[0x0]]=o0YJ_yU[hI3D91i+0x4a];if(!jfB9iu[wx19k3[o0YJ_yU[0x2]]]){wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.xdK8JmZ,hI3D91i+=-0x8,gMCvWH+=0xe4,iP1g_J+=0x20);break}else{wwzdH4(AMOiPmo.ddEcQF=AMOiPmo.xdK8JmZ,hI3D91i+=0xa,gMCvWH+=0x57,iP1g_J+=-0x84);break}case hI3D91i- -0x11e:jfB9iu[wx19k3[o0YJ_yU[hI3D91i+0x53]]]={};for(wx19k3[o0YJ_yU[0x3]]=o0YJ_yU[0x2];wx19k3[o0YJ_yU[0x3]]>>o0YJ_yU[0xb],eWXCibx[o0YJ_yU[0x1]*ytI7XFu+o0YJ_yU[0x4]]=VqjEvQU[o0YJ_yU[0x4]]%o0YJ_yU[0x8])}return eWXCibx}),decompressFromUint8Array:OdtD_Aq(function(...hI3D91i){hI3D91i[o0YJ_yU[0x0]]=o0YJ_yU[0x4];if(o0YJ_yU[0x6]==hI3D91i[o0YJ_yU[0x2]])return wx19k3[o0YJ_yU[0x5]].decompress(hI3D91i[o0YJ_yU[0x2]]);for(var AMOiPmo=new Array(hI3D91i[o0YJ_yU[0x2]].length/o0YJ_yU[0x1]),eWXCibx=o0YJ_yU[0x2],ytI7XFu=AMOiPmo.length;eWXCibx>=o0YJ_yU[0x4]}else{for(hI3D91i=o0YJ_yU[0x4],VqjEvQU=o0YJ_yU[0x2];VqjEvQU>=o0YJ_yU[0x4]}wwzdH4(o0YJ_yU[0x2]==--ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++),delete eWXCibx[OdtD_Aq])}else for(hI3D91i=AMOiPmo[OdtD_Aq],VqjEvQU=o0YJ_yU[0x2];VqjEvQU>=o0YJ_yU[0x4];wwzdH4(o0YJ_yU[0x2]==--ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++),AMOiPmo[nhr3PRU]=NEcxI6++,OdtD_Aq=String(ytI7XFu))}if(\"\"!==OdtD_Aq){if(Object.prototype.hasOwnProperty.call(eWXCibx,OdtD_Aq)){if(OdtD_Aq.charCodeAt(o0YJ_yU[0x2])>=o0YJ_yU[0x4]}else{for(hI3D91i=o0YJ_yU[0x4],VqjEvQU=o0YJ_yU[0x2];VqjEvQU>=o0YJ_yU[0x4]}wwzdH4(o0YJ_yU[0x2]==--ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++),delete eWXCibx[OdtD_Aq])}else for(hI3D91i=AMOiPmo[OdtD_Aq],VqjEvQU=o0YJ_yU[0x2];VqjEvQU>=o0YJ_yU[0x4];o0YJ_yU[0x2]==--ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++)}for(hI3D91i=o0YJ_yU[0x1],VqjEvQU=o0YJ_yU[0x2];VqjEvQU>=o0YJ_yU[0x4];for(;;){if(QsjBf8V<<=o0YJ_yU[0x4],BEdDBSA==wx19k3[o0YJ_yU[0x4]]-o0YJ_yU[0x4]){xUGoT4R.push(wx19k3[o0YJ_yU[0x1]](QsjBf8V));break}BEdDBSA++}return xUGoT4R.join(\"\")},o0YJ_yU[0xa]),decompress:OdtD_Aq(function(...VqjEvQU){VqjEvQU[o0YJ_yU[0x0]]=o0YJ_yU[0x4];return o0YJ_yU[0x6]==VqjEvQU[o0YJ_yU[0x2]]?\"\":\"\"==VqjEvQU[o0YJ_yU[0x2]]?o0YJ_yU[0x6]:wx19k3[o0YJ_yU[0x5]]._decompress(VqjEvQU[o0YJ_yU[0x2]].length,0x8000,OdtD_Aq(function(...wx19k3){wx19k3[o0YJ_yU[0x0]]=o0YJ_yU[0x4];return VqjEvQU[o0YJ_yU[0x2]].charCodeAt(wx19k3[o0YJ_yU[0x2]])}))}),_decompress:OdtD_Aq(function(...wx19k3){wx19k3[o0YJ_yU[0x0]]=o0YJ_yU[0xa];var hI3D91i,gMCvWH,jfB9iu,AMOiPmo,eWXCibx,ytI7XFu,nhr3PRU,OdtD_Aq=[],ZVaUlFJ=o0YJ_yU[0xd],NEcxI6=o0YJ_yU[0xd],fiS6Wo=o0YJ_yU[0xa],xUGoT4R=\"\",QsjBf8V=[],BEdDBSA={val:wx19k3[o0YJ_yU[0x1]](o0YJ_yU[0x2]),position:wx19k3[o0YJ_yU[0x4]],index:o0YJ_yU[0x4]};for(hI3D91i=o0YJ_yU[0x2];hI3D91i>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];switch(jfB9iu){case o0YJ_yU[0x2]:for(jfB9iu=o0YJ_yU[0x2],eWXCibx=Math.pow(o0YJ_yU[0x1],o0YJ_yU[0xb]),ytI7XFu=o0YJ_yU[0x4];ytI7XFu!=eWXCibx;)AMOiPmo=BEdDBSA.val&BEdDBSA.position,BEdDBSA.position>>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];nhr3PRU=VqjEvQU(jfB9iu);break;case o0YJ_yU[0x4]:for(jfB9iu=o0YJ_yU[0x2],eWXCibx=Math.pow(o0YJ_yU[0x1],o0YJ_yU[0xc]),ytI7XFu=o0YJ_yU[0x4];ytI7XFu!=eWXCibx;)AMOiPmo=BEdDBSA.val&BEdDBSA.position,BEdDBSA.position>>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];nhr3PRU=VqjEvQU(jfB9iu);break;case o0YJ_yU[0x1]:return \"\"}for(OdtD_Aq[o0YJ_yU[0xa]]=nhr3PRU,gMCvWH=nhr3PRU,QsjBf8V.push(nhr3PRU);;){if(BEdDBSA.index>wx19k3[o0YJ_yU[0x2]])return \"\";for(jfB9iu=o0YJ_yU[0x2],eWXCibx=Math.pow(o0YJ_yU[0x1],fiS6Wo),ytI7XFu=o0YJ_yU[0x4];ytI7XFu!=eWXCibx;)AMOiPmo=BEdDBSA.val&BEdDBSA.position,BEdDBSA.position>>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];switch(nhr3PRU=jfB9iu){case o0YJ_yU[0x2]:for(jfB9iu=o0YJ_yU[0x2],eWXCibx=Math.pow(o0YJ_yU[0x1],o0YJ_yU[0xb]),ytI7XFu=o0YJ_yU[0x4];ytI7XFu!=eWXCibx;)AMOiPmo=BEdDBSA.val&BEdDBSA.position,BEdDBSA.position>>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];wwzdH4(OdtD_Aq[NEcxI6++]=VqjEvQU(jfB9iu),nhr3PRU=NEcxI6-o0YJ_yU[0x4],ZVaUlFJ--);break;case o0YJ_yU[0x4]:for(jfB9iu=o0YJ_yU[0x2],eWXCibx=Math.pow(o0YJ_yU[0x1],o0YJ_yU[0xc]),ytI7XFu=o0YJ_yU[0x4];ytI7XFu!=eWXCibx;)AMOiPmo=BEdDBSA.val&BEdDBSA.position,BEdDBSA.position>>=o0YJ_yU[0x4],o0YJ_yU[0x2]==BEdDBSA.position&&(BEdDBSA.position=wx19k3[o0YJ_yU[0x4]],BEdDBSA.val=wx19k3[o0YJ_yU[0x1]](BEdDBSA.index++)),jfB9iu|=(AMOiPmo>o0YJ_yU[0x2]?o0YJ_yU[0x4]:o0YJ_yU[0x2])*ytI7XFu,ytI7XFu<<=o0YJ_yU[0x4];wwzdH4(OdtD_Aq[NEcxI6++]=VqjEvQU(jfB9iu),nhr3PRU=NEcxI6-o0YJ_yU[0x4],ZVaUlFJ--);break;case o0YJ_yU[0x1]:return QsjBf8V.join(\"\")}if(o0YJ_yU[0x2]==ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++),OdtD_Aq[nhr3PRU])xUGoT4R=OdtD_Aq[nhr3PRU];else{if(nhr3PRU!==NEcxI6)return o0YJ_yU[0x6];xUGoT4R=gMCvWH+gMCvWH.charAt(o0YJ_yU[0x2])}wwzdH4(QsjBf8V.push(xUGoT4R),OdtD_Aq[NEcxI6++]=gMCvWH+xUGoT4R.charAt(o0YJ_yU[0x2]),gMCvWH=xUGoT4R,o0YJ_yU[0x2]==--ZVaUlFJ&&(ZVaUlFJ=Math.pow(o0YJ_yU[0x1],fiS6Wo),fiS6Wo++))}},o0YJ_yU[0xa])};return wx19k3[o0YJ_yU[0x5]]}(),\"\\x66\\x75\\x6e\\x63\\x74\\x69\\x6f\\x6e\"==GNGqdqT[\"VMWiib\"]&&GNGqdqT[\"_a8Qt7\"].amd?GNGqdqT[\"_a8Qt7\"](function(){return pUjXPB6}):o0YJ_yU[0xe]!=GNGqdqT[\"wCdLo3B\"]&&o0YJ_yU[0x6]!=GNGqdqT[\"YH6uqCj\"]?GNGqdqT[\"YH6uqCj\"].exports=pUjXPB6:o0YJ_yU[0xe]!=GNGqdqT[\"qlFcOI\"]&&o0YJ_yU[0x6]!=GNGqdqT[\"elGKlQ\"]&&GNGqdqT[\"elGKlQ\"].module(o0YJ_yU[0xf],[]).factory(o0YJ_yU[0xf],function(){return pUjXPB6}),wx19k3=void 0x0,function(){var VqjEvQU,hI3D91i;function*gMCvWH(hI3D91i,gMCvWH,jfB9iu={rVv9K5q:{}}){while(hI3D91i+gMCvWH!==-0x5e)with(jfB9iu.GLzRRw||jfB9iu)switch(hI3D91i+gMCvWH){case 0xa9:default:wwzdH4(jfB9iu.rVv9K5q.k_jW75=-0x8a,jfB9iu.GLzRRw=jfB9iu.VcEntCD,hI3D91i+=-0x12,gMCvWH+=-0x19);break;case-0x7e:case 0x98:wwzdH4(jfB9iu.rVv9K5q.k_jW75=0x7f,rVv9K5q.mXRrEJg=\"\u15E1\u6C29\u416C\u0680\u4B30\u5823\u7036\u4074\u102D\u4087\xBC\u0710\u0480\u0D60\u20A8\u01D8\u0378\u07B0\u0AC0\u0EB6\u402C\u0178\u02AB\u2826\u602B\u407F\\u0034\u5A21\u6C20\u4C21\u1E21\u1420\u0620\u1C21\u1A52\u012D\u5C44\xB0\u01D8\\u0048\x88\u03CB\u2822\u7023\u4B75\u202B\u1460\u0949\u66FC\u40A0\u10A0\u3F20\u1EA0\u31A0\u2120\u2EA0\u22B8\\u0051\\u0053\\u0022\u2680\u05D4\u2020\u1C80\u6C88\u0280\\u0032\u4025\u2026\u2041\u43C8\u020C\\u0042\u4440\u4620\u1966\u2024\u2231\u4358\u45B2\\u004c\u0380\\u0034\u52D3\u2C80\u01B5\u3880\u3020\u1E65\x8D\\u002f\u0A31\u0B60\u07F2\u4820\u6958\u0102\\u004f\u37CF\u0730\u38CB\u222A\u22CB\u2A08\\u0076\u0867\u0900\u6492\u5483\u6A50\u6791\u4CC1\u5F19\u2420\u314A\u1C82\u1440\u2132\u1308\u70D1\u2824\u5B12\u37A5\u72CB\u5CB7\u1020\u0820\u7CC1\u25B7\u4240\u4620\u1FA4\u0431\u120C\u68BA\u6A03\u4820\u7796\u52EB\u51B8\u0620\u11A6\xE8\u6421\u1368\u4382\u1066\\u003e\u4720\u41E6\u6A38\u4124\u54E0\u0CA4\u0FE3\u1820\u6120\u1AAC\u6684\\u0036\u26D3\u1F60\u1162\u0829\u0F31\u60DA\u7E33\u2B70\u0169\u5E4C\u4DA2\u1BAC\u1820\u13A7\u50A9\u7070\u3531\u1042\u6879\u33B6\u5690\u7A62\u0F71\u0942\u10E9\u0939\u2686\u0624\u1E27\u1240\u31E8\u08F2\u30AA\u350A\u373F\u441B\u54B4\\u0037\u4AA2\u7466\u2CDB\u5E54\u2220\u6986\u2F22\xB0\u2C64\u19E1\u46A5\u6446\xA0\u32A4\u7E64\u0C6D\u20AC\u1140\u4037\u1758\u723E\u592F\u61C9\u0936\u100C\u25A3\u6484\u55EB\u6270\u18B1\u4A2B\u2822\u5A49\u0338\u45A0\u3867\xEE\u6924\u785F\u0A70\u21A8\u326B\u0DA8\u4A41\u7C9E\u072C\u49A9\u7465\u05AC\u7201\u4930\\u0030\u06F0\u466A\u59E0\u3345\u096E\\u0028\u7463\u39F1\u0635\xE4\u3100\u5E29\u44C0\u6461\\u007e\u44F0\u60EC\u583C\u0842\u640A\u0E23\u3CC0\u247D\u36B3\u27C3\u09AC\u48EB\u0123\u1C6C\\u002e\u3460\u41C3\u41B1\u2820\u3560\u595E\u2464\u4145\u0490\u4526\u2241\u7150\u04D0\u2355\u0691\u344A\u44F0\u2429\u0320\u2C55\\u0023\u165A\u4550\u62B0\u2334\u383F\u60E4\u6C5D\u0138\u5220\u1444\u4153\u40B0\u325F\u021C\u5ACE\u40D9\u6453\u10E8\u6B45\u4491\u4031\u27B8\u2336\u7139\u5E58\u1438\u1752\u0591\xCF\u0500\u5D34\u0801\u3A2C\u4438\u6655\u0461\u5E38\u5468\u7E45\u2041\u1E4E\u5280\u2359\u07D1\u3558\u14D1\u1A5B\u1334\u465B\u4501\u3242\u37D1\u5431\u4320\u18A1\u0470\u7834\u4725\u3445\u0288\u62B8\u04D0\u72DB\u5289\u493B\xD8\u222C\u4685\u3C5D\u04C8\u593F\u4491\u7434\u0668\u065A\u4251\u4828\u0729\u7638\u52A1\u2E4B\u4561\u6A53\u40A9\u3C34\u4330\u505B\u5570\u194F\u0438\u6B3F\u4800\u1136\u7740\u3846\u02EC\u122F\u23F0\u1198\u2140\u783C\u5669\u08A5\u6738\u3251\u12A0\u194D\u14D0\u175D\u0460\u1EAB\u0484\u6C4A\u4050\u3257\u0669\u5E5C\u20D9\u0945\u2460\u193C\u4484\u01AC\u0560\u1740\u60E1\u04A6\u74F8\u62A1\u4335\u152F\u2320\u01CD\u20B0\u62AF\u24C0\u6638\u0241\u5A28\u63E1\u085B\u4621\u3640\u67A8\u5947\u4529\u6E30\u45C8\u525B\u1468\u445D\u44F1\u1C39\u43B0\u7229\u043D\u60AE\u50E1\u6E4A\u4724\u5D2C\u0800\u012E\u0241\u1626\u1E01\u4E39\u4380\u5940\u6570\u182E\u0141\u4838\u4140\u1959\u4851\u08D3\u4138\u737C\u41E1\u53DD\u4465\u2E30\u2418\u4D5D\u03B1\u4948\u4E23\u495D\xE8\u4645\u4620\u6230\u40A1\u1C31\u4439\u2E30\u40E8\u5538\u0108\u4160\u082C\u242E\u0591\u1E5D\u4585\u094D\u0449\u3524\xA9\u093B\u0209\u7942\u0438\u5048\u20E0\u1728\u66F1\u6A4A\u0725\u5C21\u45C0\u305B\u4265\u1A56\u6745\u31D4\u0C39\u2820\u1249\u7933\u21A0\u7168\u0800\u01C4\u6789\u492F\u2570\u1057\u4041\u162B\u03FB\u60B9\u477C\u26D3\u5460\u103B\u07D0\x92\xA8\u01BF\u65F6\u6228\u07D0\u5D31\u23E0\u5850\u0785\u145B\u4691\u5437\u2405\u1D37\u2041\u145B\u102C\u6103\u13D9\u7942\u23E0\u382F\u2739\u613F\u4240\u62E5\u60B4\u5A0F\u02A1\u6A24\u2487\u1642\u02E9\u1CDA\u4410\u3045\u02E9\u44C2\u40A8\u454A\u45C9\u06E9\u02B0\u4631\u0419\u6D38\u3AA0\u2C2F\u21E0\u0426\u2789\u745D\u0660\\u0073\u0439\u6CAB\u04B9\u3A4F\u0724\u235B\u5334\u7840\u64C9\u6A25\u11A0\u5BAC\u46E3\u3E70\u42B0\u3851\u1140\u396E\u1820\u21B1\u0CB3\u617C\u4840\u7243\u11E8\u2D64\u0C4C\u04B8\u0222\u604B\u6620\u797C\u4057\u1D42\u7443\u4344\u1AE7\u0C63\u7350\u4F29\u186D\\u0028\u3232\u31D8\u1081\u3224\u41D0\u13B2\u3429\u0248\u6F28\u48A3\u08B0\u1929\u50F6\u1002\u08D8\u1080\u08E3\u0796\u4600\u1626\u150E\u0801\u66AB\u393C\u1DF3\u5A59\xD0\u0E22\u6466\u2738\u4AA4\u2843\u0545\u4CA5\u41F4\u1942\u3426\u0184\u3C63\u7C9B\u70E4\u2CAE\u0514\u0DFC\u3227\u516F\u4CE3\u5D2F\u2218\u2AA7\u6465\u04B8\u4526\u3032\u066D\u0833\u61B9\u07C1\u7B52\u2344\u10A7\u1097\u0464\u0320\u08F9\u2358\u3028\u10F8\u09C1\u645B\u215E\u0422\u1050\u30B0\u5427\u40B5\u0B71\u7C3D\u2040\u09C2\u6331\u4398\u1767\u294C\u4180\u64AF\u4883\u4EF1\u08BB\u615C\u1DF3\u1245\u3A98\x83\u0A8D\u0444\u71A1\u1CAC\u45B1\u1432\u4126\u1A21\u583B\x82\u2525\u7043\u73A6\u71A7\u788B\u06D0\u182C\u61FC\u0A0B\u0AA1\u01B8\u18A4\u6842\u44C0\u102C\u78A3\u09E1\u0A31\u017C\u1362\u123A\u6082\u36D7\u289E\xA0\u7B64\u68C8\u03E9\u42A2\u71F4\u1F40\u2436\u403A\u33A4\u7059\u2372\u3FA3\u4104\u06E0\u132C\x9A\u0F21\u5834\u42C8\u1AE7\u3248\u0248\u1624\u20B0\u1F9D\u6EAD\u31BC\u0A20\u0134\u03E4\u0C22\u608D\\u002c\u0C24\u0B03\u0250\u2234\u10AF\u1528\u55CA\u01E8\u0623\u0A55\u41B0\u2126\u14CE\u0EF0\u5D23\u08E0\u04A1\u5AA6\u02A4\u1AE7\u0275\xD6\u7761\u44BC\u0B70\u08AA\xAC\u1EA3\u1938\u40CF\u35B3\u7C72\u2920\u76AE\u0482\u4BC0\u72A2\u01C8\u0242\u2264\u03DA\u3AE0\u603E\u4620\\u0044\u2649\u1E05\u0171\u5310\u05A0\xAF\u2332\u37A6\u2F44\u61A0\u0C28\u18BE\u0440\u7A72\u41E1\u1130\u324D\u2084\u1A55\u286A\u4668\\u0040\u050E\u43A0\u6B3E\u41B2\u0840\u6021\u7A31\u3651\u4875\u1570\u22AB\u6040\u03F0\u5931\u1146\u0220\u7128\u5924\u256C\u0C42\u4330\u0BA3\u68A3\u0A2B\u0820\u6060\u1B67\u785C\u21CC\u3861\x97\u202C\u362C\u24CE\u0F80\u7F3A\u75FC\u16A2\u1438\u53DA\u37A0\u1832\u2F38\u56A0\u0826\u01F9\u0A23\u10C4\u1522\u2838\u79D0\u3B47\u4420\u1500\u41AB\u1F19\u0E01\u4CBC\u3045\u2843\u684D\u2150\u2247\u105C\u0138\u3C41\u406C\u0B00\u2031\u22B8\u0893\u7856\u1A1A\u1452\u2730\u0138\u22A4\u6086\u0320\u18BB\u3864\u18B3\u6C31\u43E4\u2860\u4ECE\u4690\u3120\u0821\u0681\u0331\u0162\xE1\u585B\u42D8\u63A0\u4ED2\u01E0\u766C\u24BC\u0C68\u13CE\u28EC\u08E0\u7034\\u0030\u04A4\u3875\xFD\u7061\u1066\u0741\u1A35\u2104\u1120\u7024\u0390\u3027\u5520\\u0046\u7096\u2619\u48AC\\u0078\u0EE9\u06F0\u3042\u0721\u0E26\u222C\u3B0D\u382C\u4120\u2C2D\u6058\u0C21\u2E3B\u40F5\u3120\u4042\u4212\u2224\u7028\u0120\\u0040\u03A8\u08B0\u103D\u51D8\u0B40\u205C\u0E60\u0E20\u0C58\u0700\u1928\u5658\u08C0\u6231\u020C\u1821\u2034\\u0060\u0D3F\u6484\u1BA0\u2048\u63EC\u38A0\u502A\u0762\u11B2\u06A4\u0288\u0663\u51C1\u1933\u466E\u64AA\u03A0\u6292\u0130\u0D81\u24E8\u0240\u2422\u51A8\u01B3\u0CAE\u0908\u33E6\u382F\u4730\u1823\u3834\\u0020\u2D2C\u4120\\u0020\\u0020\",rVv9K5q.n21ibM=pUjXPB6.decompressFromUTF16(rVv9K5q.mXRrEJg),jfB9iu.GLzRRw=jfB9iu.rVv9K5q,hI3D91i+=0x33,gMCvWH+=-0x3e);break;case gMCvWH-0x12:case 0xb9:jfB9iu.rVv9K5q.Nttzh7=n21ibM.split(\"\\u007c\");return VqjEvQU=!0x0,wx19k3=OdtD_Aq(function(...hI3D91i){hI3D91i[o0YJ_yU[0x0]]=o0YJ_yU[0x4];return Nttzh7[hI3D91i[o0YJ_yU[0x2]]]});case-0xd8:case 0x83:case 0xc3:wwzdH4(jfB9iu.GLzRRw=jfB9iu.rVv9K5q,hI3D91i+=-0x63,gMCvWH+=0xb2);break;case 0x21:wwzdH4(jfB9iu.rVv9K5q.k_jW75=-0x97,jfB9iu.GLzRRw=jfB9iu.z62hN1N,hI3D91i+=0x179,gMCvWH+=-0x1f8);break}}wwzdH4(VqjEvQU=void 0x0,hI3D91i=gMCvWH(-0x45,-0x39).next().value);if(VqjEvQU){return hI3D91i}}());function ZVaUlFJ(...wx19k3){wwzdH4(wx19k3[o0YJ_yU[0x0]]=o0YJ_yU[0x4],wx19k3[o0YJ_yU[0x12]]=\"\\x71\\x6d\\x54\\x4f\\x4a\\x46\\x44\\x67\\x61\\x45\\x64\\x77\\x30\\x7e\\x34\\x28\\x48\\x51\\x7b\\x7d\\x41\\x55\\x58\\x56\\x35\\x5b\\x68\\x6f\\x4e\\x38\\x43\\x4d\\x3b\\x74\\x2e\\x22\\x62\\x59\\x49\\x4c\\x50\\x78\\x5d\\x2f\\x53\\x75\\x5e\\x40\\x69\\x63\\x70\\x36\\x76\\x7c\\x26\\x4b\\x66\\x72\\x3c\\x3d\\x65\\x42\\x6c\\x79\\x57\\x31\\x21\\x32\\x2b\\x52\\x2a\\x25\\x6b\\x6e\\x5f\\x6a\\x2c\\x47\\x5a\\x3a\\x37\\x24\\x29\\x3e\\x3f\\x7a\\x23\\x60\\x39\\x33\\x73\",wx19k3[o0YJ_yU[0x1]]=\"\"+(wx19k3[o0YJ_yU[0x2]]||\"\"),wx19k3[o0YJ_yU[0x11]]=wx19k3[o0YJ_yU[0x1]].length,wx19k3[o0YJ_yU[0xd]]=[],wx19k3[-o0YJ_yU[0x15]]=o0YJ_yU[0x2],wx19k3[o0YJ_yU[0x16]]=o0YJ_yU[0x2],wx19k3[o0YJ_yU[0x14]]=-o0YJ_yU[0x4]);for(wx19k3[o0YJ_yU[0x10]]=o0YJ_yU[0x2];wx19k3[o0YJ_yU[0x10]]o0YJ_yU[0x2b]?o0YJ_yU[0x19]:o0YJ_yU[0x1a]);do{wwzdH4(wx19k3[o0YJ_yU[0xd]].push(wx19k3[-o0YJ_yU[0x15]]&o0YJ_yU[0x17]),wx19k3[-o0YJ_yU[0x15]]>>=o0YJ_yU[0xb],wx19k3[o0YJ_yU[0x16]]-=o0YJ_yU[0xb])}while(wx19k3[o0YJ_yU[0x16]]>o0YJ_yU[0x18]);wx19k3[o0YJ_yU[0x14]]=-o0YJ_yU[0x4]}}if(wx19k3[o0YJ_yU[0x14]]>-o0YJ_yU[0x4]){wx19k3[o0YJ_yU[0xd]].push((wx19k3[-o0YJ_yU[0x15]]|wx19k3[o0YJ_yU[0x14]]<o0YJ_yU[0x2b]?o0YJ_yU[0x19]:o0YJ_yU[0x1a]);do{wwzdH4(HwsrS1[o0YJ_yU[0x22]].push(HwsrS1[o0YJ_yU[0x2d]]&o0YJ_yU[nhr3PRU+0xd3]),HwsrS1[o0YJ_yU[0x2d]]>>=o0YJ_yU[0xb],HwsrS1[o0YJ_yU[0x9]]-=o0YJ_yU[0xb])}while(HwsrS1[o0YJ_yU[nhr3PRU+0xc5]]>o0YJ_yU[ytI7XFu+-0x54]);HwsrS1[-o0YJ_yU[0x31]]=-o0YJ_yU[0x4]}}if(HwsrS1[-o0YJ_yU[AMOiPmo+0x7d]]>-o0YJ_yU[0x4]){wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.kQiH94,nhr3PRU+=0x75,ZVaUlFJ+=0x13);break}else{wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.kQiH94,ytI7XFu+=-0xa3,nhr3PRU+=-0x10,ZVaUlFJ+=0x37);break}case AMOiPmo-0x16a:return VqjEvQU[jlBvak]=(0x1,fiS6Wo.VmDVvFn.dbKCzi)(hI3D91i[jlBvak]);case 0x7c:case 0x3:case-0x5a:wwzdH4(HwsrS1[o0YJ_yU[nhr3PRU+0xd4]]=\"\"+(HwsrS1[o0YJ_yU[0x2]]||\"\"),HwsrS1[o0YJ_yU[0x11]]=HwsrS1[o0YJ_yU[0x18]].length,HwsrS1[o0YJ_yU[0x22]]=[],HwsrS1[o0YJ_yU[0x2d]]=o0YJ_yU[0x2],HwsrS1[o0YJ_yU[0x9]]=o0YJ_yU[AMOiPmo+0x4e],fiS6Wo.x8Nc4S=fiS6Wo.kQiH94,ytI7XFu+=0x63);break;case AMOiPmo-0xff:case 0xd3:wwzdH4([...DuOjs2j.ocYgTWl]=BEdDBSA,DuOjs2j.UeICsL7=function*AMOiPmo(ytI7XFu,nhr3PRU,ZVaUlFJ,fiS6Wo={QEaakM:{}}){while(ytI7XFu+nhr3PRU+ZVaUlFJ!==0x47)with(fiS6Wo.q33Ikc||fiS6Wo)switch(ytI7XFu+nhr3PRU+ZVaUlFJ){default:wwzdH4(fiS6Wo.QEaakM.eys4G8=0x2d,fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=0x82,ZVaUlFJ+=-0x3d);break;case-0x1f:case-0xbb:case nhr3PRU- -0xbc:wwzdH4(fiS6Wo.QEaakM.eys4G8=-0x52,DuOjs2j.ocYgTWl[o0YJ_yU[nhr3PRU+-0x18]]=o0YJ_yU[0x4]);if(typeof VqjEvQU[DuOjs2j.ocYgTWl[o0YJ_yU[ytI7XFu+0xba]]]===wx19k3(o0YJ_yU[0x2])){wwzdH4(fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=0x82,ZVaUlFJ+=-0x16a);break}else{wwzdH4(fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=0xa0,ZVaUlFJ+=-0x16a);break}case fiS6Wo.QEaakM.eys4G8+0xa2:return DuOjs2j.SfsFFh1=!0x0,VqjEvQU[DuOjs2j.ocYgTWl[o0YJ_yU[0x2]]];case 0x8c:wwzdH4(fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=0x3b,ZVaUlFJ+=-0xbd);break;case fiS6Wo.QEaakM.eys4G8+0x84:return DuOjs2j.SfsFFh1=!0x0,VqjEvQU[DuOjs2j.ocYgTWl[o0YJ_yU[0x2]]]=(0x1,i4wxiFO.yjg9JJ)(hI3D91i[DuOjs2j.ocYgTWl[o0YJ_yU[0x2]]]);case-0x77:wwzdH4(fiS6Wo.QEaakM.eys4G8=-0x4c,DuOjs2j.ocYgTWl[o0YJ_yU[nhr3PRU+-0x9c]]=o0YJ_yU[0x4]);if(typeof VqjEvQU[DuOjs2j.ocYgTWl[o0YJ_yU[nhr3PRU+-0x9a]]]===wx19k3(o0YJ_yU[nhr3PRU+-0x9a])){wwzdH4(fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=-0x2,ZVaUlFJ+=0x65);break}else{wwzdH4(fiS6Wo.q33Ikc=fiS6Wo.QEaakM,ytI7XFu+=0x4c,nhr3PRU+=0x1c,ZVaUlFJ+=0x65);break}}},DuOjs2j.SfsFFh1=void 0x0,fiS6Wo.x8Nc4S=fiS6Wo.DuOjs2j,AMOiPmo+=-0xee,nhr3PRU+=0x12a,ZVaUlFJ+=-0x103);break;case fiS6Wo.VmDVvFn.djZro4U+-0x17d:return VqjEvQU[jlBvak];case 0xc7:case-0xc:case 0x87:[fiS6Wo.VmDVvFn.NfdyRG,fiS6Wo.VmDVvFn.djZro4U]=[0x4d,-0x6b];return VqjEvQU[jlBvak]=(0x1,fiS6Wo.VmDVvFn.dbKCzi)(hI3D91i[jlBvak]);case nhr3PRU- -0x21:return iP1g_J=!0x0,(0x1,gE1N1U)(0x56);case-0xd6:case AMOiPmo-0x3:case 0x1b:return nz4wqy;case 0x9a:return iP1g_J=!0x0,gMCvWH;case-0x1e:return;case AMOiPmo- -0x17:wwzdH4([fiS6Wo.VmDVvFn.NfdyRG,fiS6Wo.VmDVvFn.djZro4U]=[0xb4,0xa4],VmDVvFn.H_0a0Fi=function(...AMOiPmo){return eWXCibx(-0xc0,-0x8a,0xb6,-0x5c,{VmDVvFn:fiS6Wo.VmDVvFn,DkqqnR:{}},AMOiPmo).next().value},VmDVvFn.dbKCzi=function(...AMOiPmo){return eWXCibx(0x14b,-0x3b,0xb6,-0xee,{VmDVvFn:fiS6Wo.VmDVvFn,oBMVGR0:{}},AMOiPmo).next().value},Object[NEcxI6(0x4f)+(0x1,VmDVvFn.H_0a0Fi)(0x50)+\"\\x74\\x79\"](gMCvWH,(0x1,VmDVvFn.H_0a0Fi)(nhr3PRU+0x149),{[(0x1,VmDVvFn.H_0a0Fi)(AMOiPmo+0x3c)]:jfB9iu,[(0x1,VmDVvFn.H_0a0Fi)(0x53)+(0x1,VmDVvFn.H_0a0Fi)(0x54)]:o0YJ_yU[0x2c]}));if(!((0x1,VmDVvFn.H_0a0Fi)(0x55)in QsjBf8V)){wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.VmDVvFn,AMOiPmo+=0xcf,ytI7XFu+=-0xe8,nhr3PRU+=0x124,ZVaUlFJ+=-0x9e);break}else{wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.VmDVvFn,AMOiPmo+=0x82,ytI7XFu+=-0xe8,nhr3PRU+=0x3c,ZVaUlFJ+=-0xf1);break}case 0xab:case-0xf0:[DkqqnR.jlBvak]=BEdDBSA;if(typeof VqjEvQU[DkqqnR.jlBvak]===wx19k3(o0YJ_yU[0x2])){wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.DkqqnR,AMOiPmo+=0x1a5,ZVaUlFJ+=-0x13a);break}else{wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.DkqqnR,AMOiPmo+=0x1a5,ytI7XFu+=0x48,nhr3PRU+=-0x27b,ZVaUlFJ+=0xa5);break}case-0xce:case 0x17:fiS6Wo.DuOjs2j.zBL4Er7=(nhr3PRU+-0x3b,UeICsL7)(-0xb8,0x9c,-0x5b).next().value;if(SfsFFh1){wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.DuOjs2j,AMOiPmo+=0x14a,ytI7XFu+=-0x7e);break}else{wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.DuOjs2j,AMOiPmo+=0x14a,ytI7XFu+=-0x6b,nhr3PRU+=-0x18a,ZVaUlFJ+=0x1cc);break}case fiS6Wo.VmDVvFn.djZro4U+-0x51:return;case fiS6Wo.VmDVvFn.NfdyRG+-0x45:[fiS6Wo.VmDVvFn.NfdyRG,fiS6Wo.VmDVvFn.djZro4U]=[0x80,-0x9e];return;case nhr3PRU- -0x97:wwzdH4([...kQiH94.HwsrS1]=BEdDBSA,kQiH94.HwsrS1[o0YJ_yU[0x0]]=o0YJ_yU[0x4],kQiH94.HwsrS1[o0YJ_yU[0x30]]=\"\\u0065\\u0030\\u0059\\u0069\\u0077\\u0072\\u005b\\u0051\\u0070\\u004d\\u004e\\u0026\\u0046\\u0063\\u0048\\u004c\\u0024\\u0023\\u0032\\u005e\\u004a\\u0037\\u007d\\u0067\\u0021\\u0049\\u0074\\u0035\\u006b\\u0053\\u0066\\u007c\\u0041\\u003c\\u0056\\u0064\\u0042\\u0045\\u0062\\u0078\\u0033\\u005a\\u0055\\u0060\\u0058\\u002e\\u0050\\u007a\\u007e\\u0040\\u002f\\u0073\\u0043\\u0068\\u003d\\u0057\\u005d\\u002a\\u006d\\u006c\\u0079\\u0028\\u0054\\u0061\\u0031\\u004b\\u003e\\u006f\\u0076\\u0029\\u0047\\u002b\\u003f\\u002c\\u006e\\u0044\\u0036\\u0075\\u006a\\u0025\\u005f\\u004f\\u003a\\u003b\\u0038\\u0052\\u007b\\u0034\\u0071\\u0039\\u0022\",fiS6Wo.x8Nc4S=fiS6Wo.kQiH94,AMOiPmo+=-0xdb,ytI7XFu+=0x4a,ZVaUlFJ+=0x5c);break;case fiS6Wo.VmDVvFn.djZro4U+-0x197:wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.DuOjs2j,AMOiPmo+=-0xe9,ytI7XFu+=0x12d,nhr3PRU+=0x97,ZVaUlFJ+=-0xb6);break;case fiS6Wo.VmDVvFn.NfdyRG+0x24:wwzdH4([oBMVGR0.CLRgHx]=BEdDBSA,oBMVGR0.MvuznwP=function*AMOiPmo(ytI7XFu,nhr3PRU,ZVaUlFJ,fiS6Wo,BEdDBSA={NDyydZ:{}}){while(ytI7XFu+nhr3PRU+ZVaUlFJ+fiS6Wo!==-0x1)with(BEdDBSA.LGwn21T||BEdDBSA)switch(ytI7XFu+nhr3PRU+ZVaUlFJ+fiS6Wo){default:case fiS6Wo- -0xfe:wwzdH4(KmLBtfs.push((HxYawvC|DjFpGOE<o0YJ_yU[0x2b]?o0YJ_yU[0x19]:o0YJ_yU[0x1a]);do{wwzdH4(KmLBtfs.push(HxYawvC&o0YJ_yU[0x17]),HxYawvC>>=o0YJ_yU[0xb],MUkWIx7-=o0YJ_yU[ZVaUlFJ+0x61])}while(MUkWIx7>o0YJ_yU[0x18]);DjFpGOE=-o0YJ_yU[nhr3PRU+0x2f]}}if(DjFpGOE>-o0YJ_yU[ZVaUlFJ+0x5a]){wwzdH4(BEdDBSA.LGwn21T=BEdDBSA.NDyydZ,ytI7XFu+=-0x2c,ZVaUlFJ+=0xf6,fiS6Wo+=-0x1df);break}else{wwzdH4(BEdDBSA.LGwn21T=BEdDBSA.NDyydZ,ytI7XFu+=0x1c,nhr3PRU+=0xc1,ZVaUlFJ+=0xf6,fiS6Wo+=-0x1df);break}case fiS6Wo-0x6d:wwzdH4(BEdDBSA.LGwn21T=BEdDBSA.NDyydZ,ytI7XFu+=-0x7f,nhr3PRU+=0x7,ZVaUlFJ+=0x1c,fiS6Wo+=0x1ce);break}},oBMVGR0.UcJWly=void 0x0,oBMVGR0.nz4wqy=(0x1,oBMVGR0.MvuznwP)(ytI7XFu+0xbf,-0x3d,-0xec,0xec).next().value);if(oBMVGR0.UcJWly){wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.oBMVGR0,AMOiPmo+=-0xfc,ZVaUlFJ+=0x70);break}else{wwzdH4(fiS6Wo.x8Nc4S=fiS6Wo.oBMVGR0,AMOiPmo+=-0x219,ytI7XFu+=0xb3,ZVaUlFJ+=0x70);break}case nhr3PRU-0x32:wwzdH4(fiS6Wo.i4wxiFO={},fiS6Wo.i4wxiFO.gE1N1U=function(...AMOiPmo){return eWXCibx(0xf8,-0x37,-0xee,0x26,{i4wxiFO:fiS6Wo.i4wxiFO,VmDVvFn:fiS6Wo.VmDVvFn,DuOjs2j:{}},AMOiPmo).next().value},fiS6Wo.i4wxiFO.yjg9JJ=function(...AMOiPmo){return eWXCibx(0x8f,-0x41,-0xbc,0x49,{i4wxiFO:fiS6Wo.i4wxiFO,VmDVvFn:fiS6Wo.VmDVvFn,kQiH94:{}},AMOiPmo).next().value},OdtD_Aq(fiS6Wo.i4wxiFO.gE1N1U),OdtD_Aq(fiS6Wo.i4wxiFO.yjg9JJ),fiS6Wo.x8Nc4S=fiS6Wo.i4wxiFO,AMOiPmo+=0xb9,ytI7XFu+=-0x61,nhr3PRU+=-0x36,ZVaUlFJ+=-0x5);break;default:return zBL4Er7;case fiS6Wo.VmDVvFn.NfdyRG+-0x23:wwzdH4(HwsrS1[o0YJ_yU[0x22]].push((HwsrS1[o0YJ_yU[0x2d]]|HwsrS1[-o0YJ_yU[0x31]]< { sessions_alive.style.display = "none"; user.id = 0; world.players.length = 0; ui.waiting = false; user.reconnect.enabled = true; } }; } set_market(market) { game.market.items = []; for (const [price_id, price_amount, sell_id, sell_amount] of market) { game.market.items.push([price_amount, sell_amount, INV_INFOS[sell_id].img, INV_INFOS[price_id].img]); } game.market.id.innerHTML = ""; for (let i = 0; i < game.market.items.length; i++) { const [value, step, img_item, img_price] = game.market.items[i]; const item_image = sprite[img_item][0]; const item_price = sprite[img_price][0]; game.market.id.innerHTML += `
    BUY
    ${value}
    `; setTimeout(() => { document.getElementById("ore_number" + i).onchange = function() { document.getElementById("amount_price_market" + i).textContent = step === 1 ? document.getElementById("ore_number" + i).value * value : document.getElementById("ore_number" + i).value / step; } document.getElementById("buy_market_number" + i).onclick = function() { client.buy_market(document.getElementById("amount_price_market" + i).textContent, i); } }, 16); } game.market.id.innerHTML += `
    QUIT
    `; } timeout() { this.timeout_number++; if(!this.socket || this.socket?.readyState === WebSocket.OPEN) return; if(document.getElementById("captcha_block").style.display === "flex") return; /* Close socket */ if (this.timeout_number > CLIENT.TIMEOUT_NUMBER) { this.new_alert(LANG[TEXT.YOU_CANNOT_JOIN]); /* User can take the control of ui interface again */ ui.waiting = false; /* User was trying to restore the connection */ if (user.reconnect.enabled) { /* Quit the game */ game.quit(ui.run); } /* Run again a connection */ } else client.connect_timeout(); }; /* User was kicked */ kick(reason) { /* Skip old message */ if (this._current_id != this.socket._current_id) return; this._current_id++; /* Update label of kick reason */ this.new_alert(LANG[TEXT.KICKED] + reason); /* Quit the game */ game.quit(ui.run); }; /* User is muted due to spam */ mute() { this.new_alert("You speak too much"); }; /* Key of client is already used */ already_used_key() { /* Wrong key, stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.KEY_ALREADY]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Hide shop */ hide_shop_kit() { user.shop.open = false; }; /* Hide recipe book */ hide_recipe_book() { game.show_recipe_book = 0; }; /* Hide clock */ hide_clock() { game.show_clock = 0; }; /* Sand tempest mode */ sand_tempest(tempest) { user.desert.tempest = tempest; if (world.dist_desert > -300) { if (tempest === 0) this.new_alert(LANG[TEXT.TEMPEST_OFF]); else this.new_alert(LANG[TEXT.TEMPEST_ON]); } }; /* Bandage amount */ bandage(bandage) { user.bandage = bandage; }; look_inventory(inventory) { for (const [item, count] of inventory[0]) { const canvas = document.createElement("canvas"); const context = canvas.getContext("2d"); canvas.width = 50; canvas.height = 50; const img = sprite[INV_INFOS[item].img][0]; ctxDrawImage(context, img, 0, 0, 50, 50); context.font = "15px Baloo Paaji"; context.strokeStyle = "black"; context.fillStyle = "white"; context.strokeText("x" + count, 0, 45); context.fillText("x" + count, 0, 45); document.getElementById("commandsBox").appendChild(canvas); } } session_list(sessions) { sessions_alive.style.display = "flex"; sessions_alive.innerHTML = ``; for (let i = 0; i < sessions.length; i++) { const [name, token, token_id, inventory] = sessions[i]; sessions_alive.insertAdjacentHTML("afterbegin", `
    Name: ${name}
    Tok: ********
    TokId: ********
    ` ); setTimeout(() => { const session_alive = document.getElementById("session_alive" + i); const session_token = document.getElementById("session_token" + i); const session_token_id = document.getElementById("session_token_id" + i); session_token.onclick = function() { session_token.textContent = "Tok: " + token; } for (const [item, count] of inventory) { if(item <= 0 || count <= 0) continue; const canvas = document.createElement("canvas"); const context = canvas.getContext("2d"); canvas.width = 50; canvas.height = 50; ctxDrawImage(context, sprite[INV_INFOS[item].img][0], 0, 0, 50, 50); context.font = "15px Baloo Paaji"; context.strokeStyle = "black"; context.fillStyle = "white"; context.strokeText("x" + count, 0, 45); context.fillText("x" + count, 0, 45); session_alive.appendChild(canvas); } session_token_id.onclick = function() { session_token_id.textContent = "TokId: " + token_id; } join_new_session.onclick = () => { user.token = Utils.generate_token(CLIENT.TOKEN_LEN); user.token_id = Utils.generate_token(CLIENT.TOKEN_LEN); send([38]); } document.getElementById(`session_join${i}`).onclick = () => { user.token = token; user.token_id = token_id; send([ ui.nickname.input.value, user.token, user.token_id, ui.skin, ui.accessory, ui.bag, ui.book, ui.crate, ui.dead, user.login, user.password, "" ]); } }, 0); } } captcha(ui8) { const sended = Date.now(); if(ui8.length === 1) { send([ ui.nickname.input.value, user.token, user.token_id, ui.skin, ui.accessory, ui.bag, ui.book, ui.crate, ui.dead, user.login, user.password, "" ]); return; } const attempts = ui8[1]; captcha_image.src = URL.createObjectURL( new Blob([ new window.Uint8Array(ui8.slice(2)) ]) ); captcha_attempts.textContent = "Attempts available: " + attempts; captcha_count.textContent = "The captcha expires after 10 seconds"; captcha_block.style.display = "flex"; captcha_input.focus(); const interval = setInterval(() => { const elapsed = window.Math.floor((window.Date.now() - sended) / 1000); captcha_count.textContent = `The captcha expires after ${10 - elapsed} second${10 - elapsed === 1 ? "" : "s"}`; if(elapsed >= 10) { clearInterval(interval); ui.waiting = false; captcha_block.style.display = "none"; } }, 1000); const oncaptcha = function() { send([ ui.nickname.input.value, user.token, user.token_id, ui.skin, ui.accessory, ui.bag, ui.book, ui.crate, ui.dead, user.login, user.password, captcha_input.value ]); clearInterval(interval); captcha_count.textContent = "The captcha expires after 10 seconds"; captcha_block.style.display = "none"; captcha_input.value = ""; } captcha_input.onkeydown = function() { if(captcha_input.value.length === 3) { setTimeout(oncaptcha, 0); } } } /* Blizzard status */ blizzard_status(blizzard) { user.blizzard = blizzard; }; /* Blizzard mode */ blizzard(tempest) { user.winter.tempest = tempest; if (world.dist_winter > -300) { if (tempest === 0) this.new_alert(LANG[TEXT.BLIZZARD_OFF]); else this.new_alert(LANG[TEXT.BLIZZARD_ON]); } }; /* Explorer quest resolution */ explorer_quest(biome) { if (biome === 0) window.document.getElementById("exploreForest").src = "img/forest-leaf-ok.png"; else if (biome === 1) window.document.getElementById("exploreWinter").src = "img/winter-flake-ok.png"; else if (biome === 2) window.document.getElementById("exploreLava").src = "img/lava-volcano-ok.png"; else if (biome === 3) window.document.getElementById("exploreDesert").src = "img/desert-cactus-ok.png"; }; /* Hide market */ hide_market() { game.show_market = 0; }; /* Hide quest */ hide_quest() { game.show_quest = 0; }; /* Clean player inventory and craft timer */ clean_inventory() { /* Set inventory */ user.inv.can_select = []; user.inv.n = []; user.inv.id = -1; /* Set drag system */ user.inv.drag.stop(); /* Set craft system */ user.craft.can_craft = []; user.craft.crafting = false; user.craft.preview = -2; user.craft.id = -1; user.craft.workbench = false; user.craft.well = false; user.craft.fire = false; user.craft.water = false; user.craft.timeout = new LinearAnimation(false, 0, 1, 0, 1, 1); }; /* Server talk to you */ commands([cmd, succeed, answer, content]) { for (var i = 0; i < arguments.length; i++) { if (typeof arguments[i] === "string") arguments[i] = Utils.escape_html(arguments[i]); } user.terminal.write_command(cmd, succeed, answer, content); }; /* Server owner talk to you */ message(msg) { /* Display message */ this.new_alert(msg); }; /* The password is wrong */ wrong_password() { /* Old version, stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.WRONG_PASSWORD]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Client version is too new */ new_version() { /* Old version, stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.NEW_VERSION]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Client version is too old */ old_version() { /* Old version, stop auto reconnection */ window.clearTimeout(this.timeout_handler); /* Display error message */ this.new_alert(LANG[TEXT.OLD_VERSION]); /* User can take the control of ui interface again */ ui.waiting = false; }; /* Player get his bag */ get_bag() { user.inv.update_bag_size(1, 0); game.update_inv_buttons(); }; // A player was just verified verified_account(ui8) { var id = ui8[1]; var player = world.players[id]; player.skin = ui8[2]; player.accessory = ui8[3]; player.baglook = ui8[4]; player.book = ui8[5]; player.level = ui8[6]; var p = world.fast_units[id]; if (p) { p.skin = ui8[2]; p.accessory = ui8[3]; p.baglook = ui8[4]; p.book = ui8[5]; } }; /* Player terminate his craft */ build_stop(id) { if (id === ItemType.BAG) { user.inv.update_bag_size(1, 0); game.update_inv_buttons(); } else this.gather([0, id, 1]); /* Refresh craft buttons */ user.craft.restart(); }; /* You can recycle your object */ recycle_ok(id) { /* Reset delay of auto feed */ user.auto_feed.delay = 0; user.craft.do_recycle(id); }; /* You finished to recycle your item */ recycle_stop(id) { var items = RECIPES[id].r; /* Take items from kit */ for (var i = 0; i < items.length; i++) { if (user.inv.max > user.inv.can_select.length || user.inv.n[items[i][0]] > 0) { var amount = window.Math.floor(items[i][1] * 0.8); if (!amount) continue; this.gather([0, items[i][0], amount]); } } /* Refresh craft buttons */ user.craft.restart(); }; /* You can build your object */ build_ok(id) { /* Reset delay of auto feed */ user.auto_feed.delay = 0; user.craft.do_craft(id); }; /* Stop attack */ stop_attack() { send([14]); }; /* Send attack */ send_attack(angle) { send([4, window.Math.floor((((angle + PI2M) % PI2M) * 255) / PI2M)]); }; /* Send angle */ send_angle(angle) { send([3, window.Math.floor((((angle + PI2M) % PI2M) * 255) / PI2M)]); }; /* Send move */ send_move(move) { send([2, move]); }; /* Send command message */ send_command(buffer) { /* Send to the server */ send([34, buffer]); }; /* Send chat message */ send_chat(buffer) { /* Print your message in the chat */ var p = world.fast_units[user.id]; p.text.push(buffer); /* Send to the server */ send([0, buffer]); }; } var SLOW_DOWN = []; for (var i = 0; i < 500; i++) SLOW_DOWN[i] = 0; SLOW_DOWN[ItemType.SUPER_DIVING_SUIT] = 1; SLOW_DOWN[ItemType.WOOD_SWORD] = 1; SLOW_DOWN[ItemType.STONE_SWORD] = 1; SLOW_DOWN[ItemType.GOLD_SWORD] = 1; SLOW_DOWN[ItemType.DIAMOND_SWORD] = 1; SLOW_DOWN[ItemType.AMETHYST_SWORD] = 1; SLOW_DOWN[ItemType.REIDITE_SWORD] = 1; SLOW_DOWN[ItemType.PIRATE_SWORD] = 1; SLOW_DOWN[ItemType.DRAGON_SWORD] = 1; SLOW_DOWN[ItemType.LAVA_SWORD] = 1; SLOW_DOWN[ItemType.CURSED_SWORD] = 1; SLOW_DOWN[ItemType.STONE_SPEAR] = 1; SLOW_DOWN[ItemType.GOLD_SPEAR] = 1; SLOW_DOWN[ItemType.DIAMOND_SPEAR] = 1; SLOW_DOWN[ItemType.AMETHYST_SPEAR] = 1; SLOW_DOWN[ItemType.REIDITE_SPEAR] = 1; SLOW_DOWN[ItemType.DRAGON_SPEAR] = 1; SLOW_DOWN[ItemType.LAVA_SPEAR] = 1; SLOW_DOWN[ItemType.WOOD_SPEAR] = 1; SLOW_DOWN[ItemType.CRAB_SPEAR] = 1; var QUESTS = [ WORLD.DAY * 6, // DRAGON WORLD.DAY * 3, // AMETHYST WORLD.DAY * 4, // SURVIVE WORLD.DAY * 3, // LUCK WORLD.DAY * 6, // PEACE WORLD.DAY * 5, // FARMER WORLD.DAY * 5, // HOOD WORLD.DAY * 10, // LAVA WORLD.DAY * 6, // REIDITE WORLD.DAY * 7, // FARMER DESERT WORLD.DAY * 6, // EMERALD WORLD.DAY * 8, // SANDWORM WORLD.DAY * 7 // EXPLORER ]; var EXTRACTORS = [ [ITEMS.EXTRACTOR_MACHINE_STONE, ItemType.STONE], [ITEMS.EXTRACTOR_MACHINE_GOLD, ItemType.GOLD], [ITEMS.DIAMOND_EXTRACTOR, ItemType.DIAMOND], [ITEMS.EXTRACTOR_MACHINE_AMETHYST, ItemType.AMETHYST], [ITEMS.EXTRACTOR_MACHINE_REIDITE, ItemType.REIDITE] ]; class Player { constructor() { this.nickname = ""; this.skin = 0; this.accessory = 0; this.bag = 0; this.baglook = 0; this.book = 0; this.level = 0; this.label = null; this.label_winter = null; this.ldb_label = null; this.alive = false; this.score = 0; } } class Item { constructor(type, pid, id, x, y, angle, action, info, speed, extra) { this.type = type; this.pid = pid; this.id = id; this.x = x; this.y = y; this.angle = angle; this.nangle = angle; this.action = action; this.info = info; this.extra = extra; this.r = { x: x, y: y }; this.speed = speed; switch (type) { case ITEMS.PLAYERS: this.player = world.players[this.pid]; this.skin = isNaN(this.player.skin) || this.player.skin < 0 || this.player.skin > 174 ? 1 : this.player.skin; this.baglook = isNaN(this.player.baglook) || this.player.baglook > 70 || this.player.baglook < 0 ? 1 : this.player.baglook; this.book = isNaN(this.player.book) || this.player.book > 45 || this.player.book < 0 ? 1 : this.player.book; this.accessory = isNaN(this.player.accessory) || this.player.book > 95 || this.player.accessory < 0 ? 1 : this.player.accessory; this.dist_forest = -1000000; this.dist_lava = -1000000; this.dist_winter = -1000000; this.dist_desert = -1000000; this.dist_water = -1000000; this.dist_sand = -1000000; this.dist_dragon = -1000000; this.zombie = world.mode === WORLD.MODE_ZOMBIES && this.skin === WORLD.ZOMBIE_SKIN ? true : false; this.vampire = world.mode === WORLD.MODE_VAMPIRES && this.skin === WORLD.VAMPIRE_SKIN ? true : false; this.superzombie = this.zombie && this.player.nickname === " " ? true : false; this.foot = []; this.tower = 0; this.move_effect = true; this.id_foot = 0; this.fly = 0; this.swim = []; this.r = { x: x, y: y }; this.draw = draw_player; this.draw_vehicle = draw_vehicle; this.vehicle_fx1 = 0; this.vehicle_fx2 = 0; this.vehicle_fx3 = 0; this.vehicle_fx4 = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.vehicle_fx5 = 0; this.tower_fx = 0; this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.heal = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.freeze = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.starve = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.idle = new LinearAnimation(true, 0, 2.25, -1.5, 3.75, 7.5); this.walk = new LinearAnimation(true, 0, 7.5, -3, 22.5, 33.75); this.attack = new LinearAnimation(false, 0, 0, -window.Math.PI / 3, 6, 9); this.slow_attack = 0; this.web = new LinearAnimation(false, 0.6, 0.6, 0, 1, 3); this.move_head = this.superzombie ? new LinearAnimation(true, 0, 2.25, -1.5, 2.75, 5.5) : 0; this.angle_init = 0; this.text_ease = 0; this.text_effect = []; this.text_move = []; this.text = []; this.label = []; this.draw_text = draw_chat; this.hand = true; this.right = -1; this.vehicle = -1; this.action = STATE.IDLE; this.clothe = 0; this.ghost = false; this.bubbles = []; this.bag = 0; this.update = function (action) { if (this.info & 0x4000) { this.info = ~0x4000 & this.info; this.bag = 1; } else this.bag = 0; this.clothe = window.Math.floor(this.info / 128); this.info -= 128 * this.clothe; if (this.info === ItemType.HAND || this.superzombie) this.right = -1; else this.right = this.info; this.tower = world.find_tower(window.Math.floor(this.r.y / 100), window.Math.floor(this.r.x / 100)); this.vehicle = this.extra & 0xff; /* If player is a ghost */ if (this.extra === WORLD.GHOST) this.ghost = true; else this.ghost = false; if (SLOW_DOWN[this.right]) this.weapon = true; else this.weapon = false; /* Player is stuck */ if (action & STATE.WEB) { this.web.o = false; this.web.v = 0.6; } else if (action & STATE.COLD) { this.freeze.o = false; this.freeze.v = 0.6; } else if (action & STATE.HEAL) { this.heal.o = false; this.heal.v = 0.6; } if (action & STATE.HUNGER) { this.starve.o = false; this.starve.v = 0.6; } if (action & STATE.HURT) { this.hit.o = false; this.hit.v = 0.6; } if (action & STATE.ATTACK) { this.slow_attack = CLIENT.SLOW_ATTACK; } }; this.update(); break; case ITEMS.EMERALD_MACHINE: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw_bg = draw_emerald_machine_halo; this.draw_fg = draw_emerald_machine; this.halo = new LinearAnimation(false, 1, 1.23, 1.18, 0.01, 0.01); this.rotate1 = 0; this.rotate2 = 0; this.draw_life = draw_life; break; case ITEMS.RESURRECTION: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw_bg = draw_resurrection_halo; this.draw_fg = draw_resurrection; this.halo = new LinearAnimation(false, 1, 1.23, 1.18, 0.01, 0.01); this.rotate1 = 0; this.rotate2 = 0; break; case ITEMS.FIRE: case ITEMS.BIG_FIRE: this.draw_bg = draw_fire_ground; this.draw_fg = draw_fire_halo; this.fire = new LinearAnimation(false, 1, 1.03, 0.98, 0.3, 0.3); this.ground = new LinearAnimation(false, 1, 1.23, 1.18, 0.01, 0.01); this.halo = new LinearAnimation(false, 1, 1.23, 1.18, 0.01, 0.01); this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.TOMATO_SEED: this.draw_bg = draw_tomato; this.draw_fg = draw_tomato_fruit; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.fruits = []; for (var i = 0; i < 3; i++) this.fruits.push({ draw: draw_breath_2, breath: new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2) }); this.fruits[0].x = this.x - 16.5; this.fruits[0].y = this.y - 15.5; this.fruits[0].angle = this.angle; this.fruits[1].x = this.x + 36; this.fruits[1].y = this.y + 17; this.fruits[1].angle = this.angle; this.fruits[2].x = this.x - 18.5; this.fruits[2].y = this.y + 39; this.fruits[2].angle = this.angle; break; case ITEMS.SEED: this.draw_bg = draw_seed; this.draw_fg = draw_plant; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.fruits = []; for (var i = 0; i < 3; i++) this.fruits.push({ draw: draw_breath, breath: new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2) }); this.fruits[0].x = this.x - 16.5; this.fruits[0].y = this.y - 15.5; this.fruits[1].x = this.x - 5.5; this.fruits[1].y = this.y + 7.5; this.fruits[2].x = this.x + 18; this.fruits[2].y = this.y - 5; break; case ITEMS.BABY_MAMMOTH: this.draw = draw_baby_mammoth; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.BOAR: this.draw = draw_boar; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.CRAB_BOSS: this.draw = draw_crab_boss; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.breathl = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.breathr = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.heal = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.CRAB: this.draw = draw_crab; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.breathl = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.breathr = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); this.heal = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.FLAME: this.draw = draw_simple_mobs_hd; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.FIREFLY: this.draw = draw_simple_mobs; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.5, 0.5); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.SPELL: this.spell = this.info & 0xf; this.fly = this.extra & 1; this.born = 0; this.x = this.info; this.y = this.extra; this.draw = draw_spell; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.6, 0.6); break; case ITEMS.RABBIT: case ITEMS.WOLF: case ITEMS.SPIDER: case ITEMS.FOX: case ITEMS.BEAR: case ITEMS.MAMMOTH: case ITEMS.PIRANHA: case ITEMS.KRAKEN: case ITEMS.PENGUIN: this.draw = draw_simple_mobs; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.BREAD_OVEN: this.draw_fg = draw_bread_oven_smog; this.draw = draw_bread_oven; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.up = new LinearAnimation(false, 1, 1.03, 0.98, 0.1, 0.1); this.smog = []; break; /*Christmas*/ case ITEMS.GIFT: this.angle = (window.Math.random() * window.Math.PI) / 2; case ITEMS.CRATE: case ITEMS.DEAD_BOX: this.draw = draw_crate; this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.TREASURE_CHEST: this.draw = draw_simple_mobs_2; this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.LAVA_DRAGON: this.scale = 1; this.draw = draw_lava_dragon; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.SAND_WORM: this.dig = 0; this.ground = []; this.groundTimer = 0; this.draw_ground = draw_sand_worm_ground; this.draw = draw_sand_worm; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.VULTURE: this.x = this.info; this.y = this.extra; this.scale = 1; this._alpha = 0; this.draw = draw_vulture; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.HAWK: this.x = this.info; this.y = this.extra; this.scale = 1; this._alpha = 0; this.draw = draw_hawk; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.BABY_LAVA: this.scale = 1; this.draw = draw_baby_lava; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.BABY_DRAGON: this.scale = 1; this.draw = draw_baby_dragon; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.DRAGON: this.scale = 1; this.draw = draw_dragon; this.breath = new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2); this.rotate = new LinearAnimation(false, 0, 0, -window.Math.PI / 6, 0.5, 1); this.hit = new LinearAnimation(false, 0.6, 0.6, 0, 5, 3); break; case ITEMS.FRUIT: this.fruits = []; for (var i = 0; i < 5; i++) this.fruits.push({ draw: draw_breath, breath: new LinearAnimation(false, 0.9 + window.Math.random() * 0.15, 1.05, 0.9, 0.2, 0.2) }); switch (this.id % 3) { case 0: this.fruits[0].x = this.x - 20.5; this.fruits[0].y = this.y - 22.5; this.fruits[1].x = this.x - 35.5; this.fruits[1].y = this.y + 7.5; this.fruits[2].x = this.x + 7.5; this.fruits[2].y = this.y - 30; this.fruits[3].x = this.x + 22.5; this.fruits[3].y = this.y; this.fruits[4].x = this.x - 7.5; this.fruits[4].y = this.y + 14.5; break; case 1: this.fruits[0].x = this.x - 30.5; this.fruits[0].y = this.y - 22.5; this.fruits[1].x = this.x - 15.5; this.fruits[1].y = this.y + 7.5; this.fruits[2].x = this.x + 15.5; this.fruits[2].y = this.y - 30; this.fruits[3].x = this.x + 12.5; this.fruits[3].y = this.y + 5; this.fruits[4].x = this.x - 40.5; this.fruits[4].y = this.y + 14.5; break; case 2: this.fruits[0].x = this.x - 20.5; this.fruits[0].y = this.y - 20.5; this.fruits[1].x = this.x - 35.5; this.fruits[1].y = this.y + 15.5; this.fruits[2].x = this.x + 7.5; this.fruits[2].y = this.y - 17; this.fruits[3].x = this.x + 22.5; this.fruits[3].y = this.y + 5; this.fruits[4].x = this.x - 7.5; this.fruits[4].y = this.y + 1.5; break; } break; case ITEMS.WHEAT_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_wheat; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); this.wind = new LinearAnimation(false, 0, window.Math.PI / 30, -window.Math.PI / 30, 0.06, 0.06); break; case ITEMS.THORNBUSH_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_thornbush; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.GARLIC_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_garlic; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.CARROT_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_carrot; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.ALOE_VERA_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_aloe_vera; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.WATERMELON_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_watermelon; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.PUMPKIN_SEED: this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw = draw_pumpkin; this.ground = new LinearAnimation(false, 0.9, 1.05, 0.9, 0.2, 0.2); break; case ITEMS.EXTRACTOR_MACHINE_STONE: this.draw = draw_extractor_stone; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.EXTRACTOR_MACHINE_GOLD: this.draw = draw_extractor_gold; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.DIAMOND_EXTRACTOR: this.draw = draw_extractor_diamond; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.EXTRACTOR_MACHINE_AMETHYST: this.draw = draw_extractor_amethyst; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.EXTRACTOR_MACHINE_REIDITE: this.draw = draw_extractor_reidite; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.WINDMILL: this.draw_bg = draw_windmill_head; this.draw_fg = draw_windmill_wings; this.rotate = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.ROOF: this.draw = draw_roof; this.j = window.Math.floor(this.x / 100); this.i = window.Math.floor(this.y / 100); this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.opacity = 1; this.draw_life = draw_life_small; break; //Christmas case ITEMS.GARLAND: this.draw = draw_garland; this.halo = new LinearAnimation(false, 1, 1.15, 1, 0.3, 0.3); this.color = 0; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.PLOT: case ITEMS.WORKBENCH: case ITEMS.WOOD_TOWER: case ITEMS.WELL: case ITEMS.TOTEM: this.draw = draw_simple_item; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; break; case ITEMS.BRIDGE: this.draw = draw_simple_item; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw_life = draw_life_small; break; case ITEMS.WALL: case ITEMS.STONE_WALL: case ITEMS.GOLD_WALL: case ITEMS.DIAMOND_WALL: case ITEMS.AMETHYST_WALL: case ITEMS.REIDITE_WALL: case ITEMS.SPIKE: case ITEMS.STONE_SPIKE: case ITEMS.GOLD_SPIKE: case ITEMS.DIAMOND_SPIKE: case ITEMS.AMETHYST_SPIKE: case ITEMS.REIDITE_SPIKE: this.draw = draw_simple_item; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw_life = draw_life; break; case ITEMS.BED: this.draw = draw_bed; this.opacity = 1; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; var rest = this.angle % (window.Math.PI / 2); if (rest < PI4D) this.angle -= rest; else this.angle += window.Math.PI / 2 - rest; break; case ITEMS.WHEAT_MOB: this.draw = draw_wheat_seed; this.angle = window.Math.random() * PI2M; break; case ITEMS.ALOE_VERA_MOB: this.draw = draw_aloe_vera_mob; this.angle = window.Math.random() * PI2M; break; case ITEMS.PUMPKIN_MOB: this.draw = draw_pumpkin_seed; this.angle = window.Math.random() * PI2M; break; case ITEMS.GARLIC_MOB: this.draw = draw_garlic_seed; this.angle = window.Math.random() * PI2M; break; case ITEMS.THORNBUSH_MOB: this.draw = draw_thornbush_seed; this.angle = window.Math.random() * PI2M; break; case ITEMS.CHEST: this.update = function (action) { this.lock = this.info & 0x2000 ? 1 : 0; this.info = this.info & 0x1fff; this.action = action; }; this.draw = draw_chest; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.lock = 0; this.update(this.action); break; case ITEMS.WOOD_DOOR_SPIKE: case ITEMS.STONE_DOOR_SPIKE: case ITEMS.GOLD_DOOR_SPIKE: case ITEMS.DIAMOND_DOOR_SPIKE: case ITEMS.AMETHYST_DOOR_SPIKE: case ITEMS.REIDITE_DOOR_SPIKE: case ITEMS.WOOD_DOOR: case ITEMS.STONE_DOOR: case ITEMS.GOLD_DOOR: case ITEMS.DIAMOND_DOOR: case ITEMS.AMETHYST_DOOR: case ITEMS.REIDITE_DOOR: this.draw = draw_door; this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.draw_life = draw_life; break; case ITEMS.FURNACE: this.draw_bg = draw_furnace_ground; this.draw = draw_furnace; this.draw_fg = draw_furnace_halo; //this.ground = new LinearAnimation (false, 1, 1.23, 1.18, 0.01, 0.01); OLD this.ground = new LinearAnimation(false, 1, 1.23, 1.18, 0.02, 0.02); //this.halo = new LinearAnimation (false, 1, 1.23, 1.18, 0.01, 0.01); OLD this.halo = new LinearAnimation(false, 1, 1.23, 1.18, 0.04, 0.04); this.hit = { anim: new LinearAnimation(false, 1, 1, 0, 10, 10), update: false, angle: 0 }; this.update = function (action) { this.action = action; }; break; } } } class World { constructor() { this.mode = WORLD.MODE_PVP; this.custom_map = 0; this.islands = 6; this.ghost_delay = 60; this.players = []; this.units = []; this.units[ITEMS.PLAYERS] = []; this.units[ITEMS.FRUIT] = []; this.units[ITEMS.RABBIT] = []; this.units[ITEMS.WOLF] = []; this.units[ITEMS.CRAB] = []; this.units[ITEMS.BOAR] = []; this.units[ITEMS.BABY_MAMMOTH] = []; this.units[ITEMS.CRAB_BOSS] = []; this.units[ITEMS.BABY_DRAGON] = []; this.units[ITEMS.BABY_LAVA] = []; this.units[ITEMS.HAWK] = []; this.units[ITEMS.PIRANHA] = []; this.units[ITEMS.KRAKEN] = []; this.units[ITEMS.FOX] = []; this.units[ITEMS.PENGUIN] = []; this.units[ITEMS.SPELL] = []; this.units[ITEMS.FIREFLY] = []; this.units[ITEMS.BEAR] = []; this.units[ITEMS.MAMMOTH] = []; this.units[ITEMS.DRAGON] = []; this.units[ITEMS.LAVA_DRAGON] = []; this.units[ITEMS.FLAME] = []; this.units[ITEMS.WHEAT_MOB] = []; this.units[ITEMS.ALOE_VERA_MOB] = []; this.units[ITEMS.PUMPKIN_MOB] = []; this.units[ITEMS.GARLIC_MOB] = []; this.units[ITEMS.THORNBUSH_MOB] = []; this.units[ITEMS.TREASURE_CHEST] = []; this.units[ITEMS.DEAD_BOX] = []; this.units[ITEMS.CRATE] = []; this.units[ITEMS.BREAD_OVEN] = []; this.units[ITEMS.SPIDER] = []; this.units[ITEMS.WORKBENCH] = []; this.units[ITEMS.FIRE] = []; this.units[ITEMS.BIG_FIRE] = []; this.units[ITEMS.SEED] = []; this.units[ITEMS.SPIKE] = []; this.units[ITEMS.STONE_SPIKE] = []; this.units[ITEMS.GOLD_SPIKE] = []; this.units[ITEMS.DIAMOND_SPIKE] = []; this.units[ITEMS.AMETHYST_SPIKE] = []; this.units[ITEMS.REIDITE_SPIKE] = []; this.units[ITEMS.WALL] = []; this.units[ITEMS.STONE_WALL] = []; this.units[ITEMS.GOLD_WALL] = []; this.units[ITEMS.DIAMOND_WALL] = []; this.units[ITEMS.AMETHYST_WALL] = []; this.units[ITEMS.REIDITE_WALL] = []; this.units[ITEMS.BED] = []; this.units[ITEMS.WOOD_DOOR] = []; this.units[ITEMS.STONE_DOOR] = []; this.units[ITEMS.GOLD_DOOR] = []; this.units[ITEMS.DIAMOND_DOOR] = []; this.units[ITEMS.AMETHYST_DOOR] = []; this.units[ITEMS.REIDITE_DOOR] = []; this.units[ITEMS.WOOD_DOOR_SPIKE] = []; this.units[ITEMS.STONE_DOOR_SPIKE] = []; this.units[ITEMS.GOLD_DOOR_SPIKE] = []; this.units[ITEMS.DIAMOND_DOOR_SPIKE] = []; this.units[ITEMS.AMETHYST_DOOR_SPIKE] = []; this.units[ITEMS.REIDITE_DOOR_SPIKE] = []; this.units[ITEMS.FURNACE] = []; this.units[ITEMS.TOTEM] = []; this.units[ITEMS.WOOD_TOWER] = []; this.units[ITEMS.CHEST] = []; this.units[ITEMS.RESURRECTION] = []; this.units[ITEMS.EMERALD_MACHINE] = []; this.units[ITEMS.BRIDGE] = []; this.units[ITEMS.ROOF] = []; this.units[ITEMS.PLOT] = []; this.units[ITEMS.WHEAT_SEED] = []; this.units[ITEMS.ALOE_VERA_SEED] = []; this.units[ITEMS.PUMPKIN_SEED] = []; this.units[ITEMS.TOMATO_SEED] = []; this.units[ITEMS.CARROT_SEED] = []; this.units[ITEMS.WATERMELON_SEED] = []; this.units[ITEMS.GARLIC_SEED] = []; this.units[ITEMS.THORNBUSH_SEED] = []; this.units[ITEMS.WINDMILL] = []; this.units[ITEMS.EXTRACTOR_MACHINE_STONE] = []; this.units[ITEMS.EXTRACTOR_MACHINE_GOLD] = []; this.units[ITEMS.DIAMOND_EXTRACTOR] = []; this.units[ITEMS.EXTRACTOR_MACHINE_AMETHYST] = []; this.units[ITEMS.EXTRACTOR_MACHINE_REIDITE] = []; this.units[ITEMS.WELL] = []; //Christmas this.units[ITEMS.GIFT] = []; this.units[ITEMS.GARLAND] = []; this.fast_units = []; this.nw = 260; this.nh = 260; this.dw = 100; this.dh = 100; this.w = this.nw * this.dw; this.h = this.nh * this.dh; this.RNG = new RNG(); this.biomes = []; this.shade = new LinearAnimation(false, 0, 1, 0, 1, 1); this.transition = false; this.BIOME = []; this.BIOME_FOREST = 0; this.BIOME_WINTER = 1; this.BIOME_LAVA = 2; this.BIOME_DRAGON = 3; this.BIOME_SEA = 4; this.BIOME_DESERT = 10; this.BIOME[this.BIOME_FOREST] = { isSand: 1, day: [0x13, 0x3a, 0x2b], night: [0x04, 0x2b, 0x30], _color: ["#133a2b", "#042b30"] }; this.BIOME[this.BIOME_SEA] = { isSand: 0, day: [0x0b, 0x6a, 0x84], night: [0x09, 0x37, 0x3f], _color: ["#0B6A84", "#09373F"] }; this.BIOME[this.BIOME_WINTER] = { isSand: 0, day: [0xeb, 0xf2, 0xf0], night: [0x13, 0x61, 0x67], _color: ["#EBF2F0", "#136167"] }; this.BIOME[this.BIOME_LAVA] = { isSand: 0, day: [0x2d, 0x20, 0x17], night: [0x03, 0x1c, 0x1e], _color: ["#2D2017", "#031C1E"] }; this.BIOME[this.BIOME_DRAGON] = { isSand: 0, day: [0x4a, 0x4a, 0x4a], night: [0x18, 0x3d, 0x3c], _color: ["#4A4A4A", "#183D3C"] }; this.BIOME[this.BIOME_DESERT] = { isSand: 0, day: [0xeb, 0xd8, 0xa6], night: [0x09, 0x3d, 0x38], _color: ["#EBD8A6", "#093D38"] }; function add_biome(type, wmin, hmin, range, minDist) { var w = wmin + window.Math.floor(world.RNG.get() * range); var h = hmin + window.Math.floor(world.RNG.get() * range); var x1 = 10 + window.Math.floor(world.RNG.get() * (world.nw - w - 20)); var y1 = 10 + window.Math.floor(world.RNG.get() * (world.nh - h - 20)); var x2 = x1 + w; var y2 = y1 + h; // Check intersection for (var i = 0; i < world.biomes.length; i++) { var biome = world.biomes[i]; if (Utils.intersect_aabb(x1, x2, y1, y2, biome.x1 / 100 - minDist, biome.x2 / 100 + minDist, biome.y1 / 100 - minDist, biome.y2 / 100 + minDist) === 1) return 0; } world.biomes.push(new Biome(type, x1, y1, w, h, 0xf)); return 1; } function add_sea_biome(map, sx, sy) { var xMax = sx; for (var y = sy; y < world.nh; y++) { for (var x = sx; x < world.nw; x++) { if (y === sy) xMax = window.Math.max(x, xMax); if (x > xMax) break; // Add a new sea biome if (map[y][x] === 1) break; map[y][x] = 1; } if (x < xMax) break; } world.biomes.push(new Biome(world.BIOME_SEA, sx, sy, xMax - sx + 1, y - sy, 0xf)); } function try_to_add_biome(type, wmin, hmin, range, attempt) { for (var i = 0; i < attempt; i++) { if (add_biome(type, wmin, hmin, range, 8) === 1) break; } if (i === attempt) return 0; return 1; } this.MAX_DIST = -1000000; this.dist_winter = this.MAX_DIST; this.dist_desert = this.MAX_DIST; this.dist_lava = this.MAX_DIST; this.dist_forest = this.MAX_DIST; this.dist_water = this.MAX_DIST; this.dist_dragon = this.MAX_DIST; this.dist_from_biomes = function (player) { var x = player.r.x; var y = player.r.y; var i = window.Math.floor(y / 100); var j = window.Math.floor(x / 100); player.dist_winter = world.MAX_DIST; player.dist_desert = world.MAX_DIST; player.dist_lava = world.MAX_DIST; player.dist_forest = world.MAX_DIST; player.dist_dragon = world.MAX_DIST; player.dist_sand = world.MAX_DIST; for (var k = 0; world.biomes[k].t !== world.BIOME_SEA; k++) { if (world.biomes[k].t === world.BIOME_FOREST) { var new_dist = world.dist_from_biome(k, x, y); player.dist_forest = window.Math.max(player.dist_forest, new_dist); // Is the player in a beach ? if (new_dist > 0 && world.dist_from_sand(k, x, y) === 1) player.dist_sand = 1; } else if (world.biomes[k].t === world.BIOME_WINTER) { player.dist_winter = window.Math.max(player.dist_winter, world.dist_from_biome(k, x, y)); } else if (world.biomes[k].t === world.BIOME_DESERT) { player.dist_desert = window.Math.max(player.dist_desert, world.dist_from_biome(k, x, y)); } else if (world.biomes[k].t === world.BIOME_LAVA) { player.dist_lava = window.Math.max(player.dist_lava, world.dist_from_biome(k, x, y)); } else if (world.biomes[k].t === world.BIOME_DRAGON) { player.dist_dragon = window.Math.max(player.dist_dragon, world.dist_from_biome(k, x, y)); } } if (MAP.tiles[i][j]["iblk"]) player.dist_sand = 1; if (world.find_bridge(j, i)) player.dist_water = player.MAX_DIST; else if (MAP.tiles[i][j]["wtb"] || (player.dist_winter < 0 && player.dist_lava < 0 && player.dist_forest < 0 && player.dist_sand < 0 && player.dist_dragon < 0 && player.dist_desert < 0)) player.dist_water = 1; else player.dist_water = player.MAX_DIST; }; this.update_dist_from_biomes = function (x, y) { world.dist_winter = world.MAX_DIST; world.dist_desert = world.MAX_DIST; world.dist_lava = world.MAX_DIST; world.dist_dragon = world.MAX_DIST; world.dist_forest = world.MAX_DIST; for (var k = 0; world.biomes[k].t !== world.BIOME_SEA; k++) { if (world.biomes[k].t === world.BIOME_FOREST) world.dist_forest = window.Math.max(world.dist_forest, world.dist_from_biome(k, x, y)); else if (world.biomes[k].t === world.BIOME_WINTER) world.dist_winter = window.Math.max(world.dist_winter, world.dist_from_biome(k, x, y)); else if (world.biomes[k].t === world.BIOME_DESERT) world.dist_desert = window.Math.max(world.dist_desert, world.dist_from_biome(k, x, y)); else if (world.biomes[k].t === world.BIOME_LAVA) { world.dist_lava = window.Math.max(world.dist_lava, world.dist_from_biome(k, x, y)); } else if (world.biomes[k].t === world.BIOME_DRAGON) world.dist_dragon = window.Math.max(world.dist_dragon, world.dist_from_biome(k, x, y)); } if (world.dist_winter < 0 && world.dist_dragon < 0 && world.dist_forest < 0 && world.dist_dragon < 0 && world.dist_desert < 0) { world.dist_water = 1; } else world.dist_water = world.MAX_DIST; }; this.dist_from_sand = function (bid, x, y) { var biome = world.biomes[bid]; var is_sand = 0; let x1 = biome.x1 + 30 + ((biome.v & WORLD.LEFT) === 0 ? 150 : 0); var d = x - x1; if ((biome.v & WORLD.LEFT) > 0 && d > 0 && d < 320) is_sand = 1; let y1 = biome.y1 + 250 + ((biome.v & WORLD.TOP) === 0 ? 150 : 0); d = y - y1; if ((biome.v & WORLD.TOP) > 0 && d > 0 && d < 320) is_sand = 1; let x2 = biome.x2 + 80 + ((biome.v & WORLD.RIGHT) === 0 ? -200 : 0); d = x2 - x; if ((biome.v & WORLD.RIGHT) > 0 && d > 0 && d < 320) is_sand = 1; let y2 = biome.y2 - 200 + ((biome.v & WORLD.BOTTOM) === 0 ? -200 : 0); d = y2 - y; if ((biome.v & WORLD.BOTTOM) > 0 && d > 0 && d < 320) is_sand = 1; if (x >= x1 && x <= x2 && y >= y1 && y <= y2) return is_sand; return 0; }; this.dist_from_biome = function (bid, x, y) { var biome = world.biomes[bid]; let x1 = biome.x1 + 30; let y1 = biome.y1 + 250; let x2 = biome.x2 + 80; let y2 = biome.y2 - 200; if(biome.x1 === 0) x1 = 0; if(biome.y1 === 0) y1 = 0; if (x >= x1 && x <= x2 && y >= y1 && y <= y2) return window.Math.min(x - x1, x2 - x, y - y1, y2 - y); var dist = -1000000; if (x - x1 < 0) dist = window.Math.max(dist, x - x1); else if (x2 - x < 0) dist = window.Math.max(dist, x2 - x); let distY = -1000000; if (y < y1 || y > y2) { if (y - y1 < 0) distY = window.Math.max(distY, y - y1); else distY = window.Math.max(distY, y2 - y); if (dist !== -1000000 && distY !== -1000000) dist = window.Math.min(dist, distY); else dist = distY; } return dist; }; function add_lava(amount, biome_id) { var biome = world.biomes[biome_id]; for (var k = 0, _k = 0; k < amount && _k < 10000; _k++) { // Fill the biome with magma var y = biome.y1 + world.RNG.get() * biome.h; var x = biome.x1 + world.RNG.get() * biome.w; var _i = window.Math.floor(y / 100); var _j = window.Math.floor(x / 100); var dist = world.dist_from_biome(biome_id, _j * 100 + 50, _i * 100 + 50); if (dist < 600) continue; var ok = 1; for (var i = _i - 4; ok === 1 && i <= _i + 4; i++) { for (var j = _j - 4; ok === 1 && j <= _j + 4; j++) { if (MAP.tiles[i][j] !== undefined) ok = 0; } } if (ok === 0) continue; render_single_resource(_i, _j, "la", k % 6, 0); k++; } } function add_river_line(i, j, size, di, dj, mem, w, h) { var w1 = window.Math.floor(w / 2); var w2 = window.Math.max(1, window.Math.floor(w / 2)); var h1 = window.Math.floor(h / 2); var h2 = window.Math.max(1, window.Math.floor(h / 2)); for (var k = 0; k < size; k++) { for (var _i = i - h1; _i < i + h2; _i++) { for (var _j = j - w1; _j < j + w2; _j++) { if (render_single_resource(_i, _j, "wtb", 0, 1) === 1) mem.push([_i, _j, 1]); } } i += di; j += dj; } } function add_oasis(biome_id, mem) { var biome = world.biomes[biome_id]; var i = window.Math.floor(biome.y1 / 100); var j = window.Math.floor(biome.x1 / 100); var h = window.Math.floor(biome.h / 100); var w = window.Math.floor(biome.w / 100); var h2 = i + window.Math.floor(h / 2); var w2 = j + window.Math.floor(w / 2); for (var k = 0; k < 3; k++) { var _i = window.Math.floor(h2 - 3 + world.RNG.get() * 6); var _j = window.Math.floor(w2 - 3 + world.RNG.get() * 6); render_single_resource(_i, _j, "plm", k, 1); } for (var k = 0; k < 80; k++) { var _i = window.Math.floor(h2 - 3 + world.RNG.get() * 6); var _j = window.Math.floor(w2 - 3 + world.RNG.get() * 6); if (render_single_resource(_i, _j, "wtb", 0, 1) === 1) mem.push([_i, _j, 0]); } } function add_river(biome_id, mem) { var biome = world.biomes[biome_id]; var i = window.Math.floor(biome.y1 / 100); var j = window.Math.floor(biome.x1 / 100); var h = window.Math.floor(biome.h / 100); var w = window.Math.floor(biome.w / 100); var iMax = i + h; var jMax = j + w; var turn = 2; // River top - down var _h = h; var _i = i; var _j = j + 10 + window.Math.floor((w - 20) * world.RNG.get()); for (var __j = _j - 4; __j < _j + 4; __j++) render_single_resource(i - 1, __j, "wtb", 0, 1); while (_h > 0) { // Top of the river if (turn === 2) { for (var k = 10; k > 1; k--) { add_river_line(_i, _j, 1, 1, 0, mem, k, 1); _h -= 1; _i += 1; } turn = 0; continue; } // End of the river if (_h < 10) { for (var k = 1; _h > 0; k++) { add_river_line(_i, _j, 1, 1, 0, mem, k, 1); _h -= 1; _i += 1; } continue; } if (turn === 1) { var __h = window.Math.min(_h, window.Math.floor(1 + 4 * world.RNG.get())); var w = 1 + window.Math.floor(world.RNG.get() * 4); add_river_line(_i, _j, __h, 1, 0, mem, w, w); turn = 0; _h -= __h; _i += __h; continue; } turn = 1; var __w = window.Math.floor(1 + 2 * world.RNG.get()); var ___w = 1 + window.Math.floor(world.RNG.get() * 4); if (_j < j + 16) { add_river_line(_i, _j, __w, 0, 1, mem, ___w, ___w); _j += __w; } else if (_j > jMax - 16) { add_river_line(_i, _j, __w, 0, -1, mem, ___w, ___w); _j -= __w; } else if (world.RNG.get() > 0.5) { add_river_line(_i, _j, __w, 0, 1, mem, ___w, ___w); _j += __w; } else { add_river_line(_i, _j, __w, 0, -1, mem, ___w, ___w); _j -= __w; } } for (var __j = _j - 1; __j < _j + 2; __j++) render_single_resource(_i, __j, "wtb", 0, 1); } function render_river(biome_id, mem) { for (var k = 0; k < mem.length; k++) { var _i = mem[k][0]; var _j = mem[k][1]; var current = mem[k][2]; add_single_river(_i, _j, biome_id, current); } } this.add_island = function (type, x, y) { // Fill the island with sand block "iblk" var _i = y; var _j = x; render_single_resource(_i, _j, "isl", type, 1); for (var k = 0; k < 4; k++) { for (var l = 0; l < 3; l++) { render_single_resource(_i - l, _j - k, "iblk", 0); render_single_resource(_i + l, _j - k, "iblk", 0); render_single_resource(_i + l, _j + k, "iblk", 0); render_single_resource(_i - l, _j + k, "iblk", 0); } } if (type === 0) { for (var k = 0; k < 2; k++) { render_single_resource(_i - k, _j - 4, "iblk", 0); render_single_resource(_i + k, _j - 4, "iblk", 0); render_single_resource(_i - k, _j + 4, "iblk", 0); render_single_resource(_i + k, _j + 4, "iblk", 0); } for (var k = 0; k < 3; k++) { render_single_resource(_i - 3, _j + k, "iblk", 0); render_single_resource(_i + 3, _j + k, "iblk", 0); render_single_resource(_i - 3, _j - k, "iblk", 0); render_single_resource(_i + 3, _j - k, "iblk", 0); } render_single_resource(_i - 2, _j - 4, "iblk", 0); render_single_resource(_i - 3, _j - 3, "iblk", 0); render_single_resource(_i + 2, _j + 4, "iblk", 0); render_single_resource(_i + 3, _j + 3, "iblk", 0); } else if (type === 1) { for (var k = 0; k < 3; k++) { render_single_resource(_i - k, _j - 4, "iblk", 0); render_single_resource(_i + k, _j - 4, "iblk", 0); render_single_resource(_i - k, _j + 4, "iblk", 0); render_single_resource(_i + k, _j + 4, "iblk", 0); } for (var k = 0; k < 4; k++) { render_single_resource(_i - 3, _j + k, "iblk", 0); render_single_resource(_i + 3, _j + k, "iblk", 0); render_single_resource(_i - 3, _j - k, "iblk", 0); render_single_resource(_i + 3, _j - k, "iblk", 0); } } else if (type === 2) { for (var k = 0; k < 3; k++) { render_single_resource(_i - k, _j - 4, "iblk", 0); render_single_resource(_i + k, _j - 4, "iblk", 0); render_single_resource(_i - k, _j + 4, "iblk", 0); render_single_resource(_i + k, _j + 4, "iblk", 0); } for (var k = 0; k < 3; k++) { render_single_resource(_i - 3, _j + k, "iblk", 0); render_single_resource(_i + 3, _j + k, "iblk", 0); render_single_resource(_i - 3, _j - k, "iblk", 0); render_single_resource(_i + 3, _j - k, "iblk", 0); } } }; this.add_islands = function (amount) { for (var i = 0; i < world.biomes.length && amount > 0; i++) { var biome = world.biomes[i]; if (biome.t !== world.BIOME_SEA) continue; if (biome.w > 1800 && biome.h > 1000) { var _j = window.Math.floor((biome.x1 + biome.w / 2) / 100); var _i = window.Math.floor((biome.y1 + biome.h / 2) / 100); world.add_island(amount % 3, _j, _i); // Fill the island with resources for (var k = 0; k < 3; k++) { var __i = _i - 2 + window.Math.floor(world.RNG.get() * 4); var __j = _j - 3 + window.Math.floor(world.RNG.get() * 6); if (MAP.tiles[__i][__j]["s"] === undefined) render_single_resource(__i, __j, "plm", k); var __i = _i - 2 + window.Math.floor(world.RNG.get() * 4); var __j = _j - 3 + window.Math.floor(world.RNG.get() * 6); if (MAP.tiles[__i][__j]["plm"] === undefined) render_single_resource(__i, __j, "s", k); } var __i = _i - 2 + window.Math.floor(world.RNG.get() * 4); var __j = _j - 3 + window.Math.floor(world.RNG.get() * 6); if (MAP.tiles[__i][__j]["plm"] === undefined && MAP.tiles[__i][__j]["s"] === undefined) render_single_resource(__i, __j, "p", 0, 1); amount--; } } }; this.generate_world = function (seed) { world.RNG.init(seed); var attempt = 0; // Generate biome while (1) { attempt++; if (attempt > 10000) return; // Reset biome list world.biomes = []; if (world.custom_map === 0 && (world.mode === WORLD.MODE_VAMPIRES || world.mode === WORLD.MODE_EXPERIMENTAL || world.mode === WORLD.MODE_PVP)) world.custom_map = ___MAP___; if (world.mode === WORLD.MODE_ZOMBIES) { world.biomes.push(new Biome(world.BIOME_FOREST, 2, 2, 80, 80, 0xf)); } else if (world.mode === WORLD.MODE_LEGACY) { world.biomes.push(new Biome(world.BIOME_FOREST, 2, 2, 150, 150, 0xf)); } else { // Manual designed map if (world.custom_map !== 0 && world.custom_map.length > 0 && world.custom_map[0].length > 3) { // Biome placement for (var b = 0; b < world.custom_map.length; b++) { var elt = world.custom_map[b]; if (elt[0] === 0) { var __id = world.BIOME_FOREST; switch (elt[1]) { case "FOREST": __id = world.BIOME_FOREST; break; case "WINTER": __id = world.BIOME_WINTER; break; case "DESERT": __id = world.BIOME_DESERT; break; case "LAVA": __id = world.BIOME_LAVA; break; case "DRAGON": __id = world.BIOME_DRAGON; break; } world.biomes.push(new Biome(__id, elt[2], elt[3], elt[4], elt[5], elt[6], elt[7])); continue; } else break; } // Random generated map } else if (world.custom_map !== 0) { for (var b = 0; b < world.custom_map.length; b++) { var biome = world.custom_map[b]; var __id = world.BIOME_FOREST; switch (biome[0]) { case "FOREST": __id = world.BIOME_FOREST; break; case "WINTER": __id = world.BIOME_WINTER; break; case "DESERT": __id = world.BIOME_DESERT; break; case "LAVA": __id = world.BIOME_LAVA; break; case "DRAGON": __id = world.BIOME_DRAGON; break; } if (try_to_add_biome(__id, biome[1], biome[2], 0, (b + 1) * 10) === 0) break; } if (b !== world.custom_map.length) continue; } } break; } render_minimap(); // Create a new sea biome var map = []; for (var i = 0; i < world.nh; i++) { map[i] = new Array(world.nw); for (var j = 0; j < world.nw; j++) map[i][j] = 0; } // Pre-fill the actual biome for (var i = 0; i < world.biomes.length; i++) { var biome = world.biomes[i]; var x2 = biome.x2 / 100; var y2 = biome.y2 / 100; for (var x = biome.x1 / 100; x <= x2; x++) { for (var y = biome.y1 / 100; y <= y2; y++) { try { map[y][x] = 1; } catch (e) { } } } } // Fill with the sea biome for (var y = 0; y < world.nh; y++) { for (var x = 0; x < world.nw; x++) { if (map[y][x] === 0) add_sea_biome(map, x, y); } } // Add entities to the map MAP = { w: world.nw, h: world.nh, tiles: [] }; for (var i = 0; i < world.nh; i++) MAP.tiles[i] = []; // Add manually placed islands to the map if (world.custom_map !== 0 && world.custom_map.length > 0 && world.custom_map[0].length > 3) { for (var b = 0; b < world.custom_map.length; b++) { var elt = world.custom_map[b]; if (elt[1] === "isl") world.add_island(elt[2], elt[3], elt[4]); } // Add randomly placed islands to the map } else world.add_islands(world.islands); // Add manually placed resources to the map if (world.custom_map !== 0 && world.custom_map.length > 0 && world.custom_map[0].length > 3) { var mem = []; for (var b = 0; b < world.custom_map.length; b++) { var elt = world.custom_map[b]; if (elt[0] !== 1) continue; if (elt[1] === "r") { render_single_resource(elt[3], elt[2], "wtb", 0, 1); mem.push([elt[3], elt[2], elt[4]]); } else render_single_resource(elt[4], elt[3], elt[1], elt[2], elt[5]); } render_river(0, mem); mem = []; // Add randomly placed resources to the map } else { for (var i = 0; i < world.biomes.length; i++) { var biome = world.biomes[i]; if (world.mode === WORLD.MODE_LEGACY) { if (biome.t === world.BIOME_FOREST) { add_forest_resources_v2(i, 1.5); } } else { if (biome.t === world.BIOME_FOREST) add_forest_resources(i, biome.w / (100 * 100)); if (biome.t === world.BIOME_LAVA) add_lava_resources(i, biome.w / (100 * 100)); if (biome.t === world.BIOME_WINTER) add_winter_resources(i, biome.w / (100 * 100)); if (biome.t === world.BIOME_DESERT) add_desert_resources(i, biome.w / (100 * 100)); if (biome.t === world.BIOME_DRAGON) add_dragon_resources(i); } } } // Add resources to the minimap render_all_resources_minimap(); // Add logic layer to the map world.map_wrapper(MAP); }; function add_dragon_resources(biome_id) { for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, 15); for (var i = 0; i < 3; i++) add_resources(biome_id, "a", i, 1); for (var i = 0; i < 3; i++) add_resources(biome_id, "d", i, 1); render_corner(biome_id); } function add_winter_resources(biome_id, size) { for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, window.Math.floor(18 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "f", i, window.Math.floor(24 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "d", i, window.Math.max(1, window.Math.floor(2 * size)), 0.3); for (var i = 0; i < 3; i++) add_resources(biome_id, "g", i, window.Math.floor(6 * size)); render_corner(biome_id); } function add_desert_resources(biome_id, size) { for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, window.Math.floor(12 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "m", i, window.Math.max(1, window.Math.floor(1 * size)), 0.2); add_resources(biome_id, "c", 0, window.Math.floor(36 * size)); var mem = []; add_oasis(biome_id, mem); render_river(biome_id, mem); mem = []; } function add_lava_resources(biome_id, size) { add_lava(80 * size, biome_id); for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, window.Math.floor(12 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "g", i, window.Math.floor(6 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "re", i, window.Math.max(1, window.Math.floor(1 * size)), 0.2); for (var i = 0; i < 3; i++) add_resources(biome_id, "a", i, window.Math.max(1, window.Math.floor(2 * size))); render_corner(biome_id); } function add_forest_resources_v2(biome_id, size) { for (var i = 0; i < 6; i++) add_resources(biome_id, "t", i, window.Math.floor(80 * size)); for (var i = 0; i < 4; i++) add_resources(biome_id, "b", i, window.Math.floor(80 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, window.Math.floor(50 * size)); var mem = []; for (var i = 0; i < 6; i++) add_river(biome_id, mem); render_river(biome_id, mem); add_resources(biome_id, "p", 0, window.Math.floor(28 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "g", i, window.Math.floor(7 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "d", i, window.Math.floor(2 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "a", i, window.Math.floor(1 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "m", i, window.Math.floor(1 * size)); add_resources(biome_id, "a", 0, window.Math.floor(1 * size)); render_corner(biome_id); } function add_forest_resources(biome_id, size) { for (var i = 0; i < 6; i++) add_resources(biome_id, "t", i, window.Math.floor(20 * size)); for (var i = 0; i < 4; i++) add_resources(biome_id, "b", i, window.Math.floor(20 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "s", i, window.Math.floor(20 * size)); var mem = []; add_river(biome_id, mem); render_river(biome_id, mem); mem = []; add_resources(biome_id, "p", 0, window.Math.floor(24 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "g", i, window.Math.floor(5 * size)); if (world.mode === WORLD.MODE_ZOMBIES) { for (var i = 0; i < 3; i++) add_resources(biome_id, "d", i, window.Math.floor(3 * size)); for (var i = 0; i < 3; i++) add_resources(biome_id, "a", i, window.Math.floor(2 * size)); } render_corner(biome_id); } function render_corner(biome_id) { var biome = world.biomes[biome_id]; render_single_resource(-3 + window.Math.floor(biome.y2 / 100), -1 + window.Math.floor(biome.x2 / 100), "s", 0, 0); render_single_resource(3 + window.Math.floor(biome.y1 / 100), -1 + window.Math.floor(biome.x2 / 100), "s", 0, 0); render_single_resource(-3 + window.Math.floor(biome.y2 / 100), 1 + window.Math.floor(biome.x1 / 100), "s", 0, 0); render_single_resource(3 + window.Math.floor(biome.y1 / 100), 1 + window.Math.floor(biome.x1 / 100), "s", 0, 0); } function add_resources(biome_id, type, subtype, amount, subpart) { var biome = world.biomes[biome_id]; var x = window.Math.floor(biome.x1 / 100); var y = window.Math.floor(biome.y1 / 100); var w = window.Math.floor(biome.w / 100); var h = window.Math.floor(biome.h / 100); if (subpart !== undefined) { subpart = 1 - subpart; x += window.Math.floor((w * subpart) / 2); y += window.Math.floor((h * subpart) / 2); w -= window.Math.floor(w * subpart); h -= window.Math.floor(h * subpart); } var tiles = MAP.tiles; for (var k = 0, l = 0; k < amount; l++) { if (l > 50000) break; var i = y + window.Math.floor(world.RNG.get() * h); var j = x + window.Math.floor(world.RNG.get() * w); var dist = world.dist_from_biome(biome_id, j * 100 + 50, i * 100 + 50); if (dist < 400) { continue; }; // Do not bind same resource type var tile = tiles[i][j + 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i][j - 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i + 1][j]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i - 1][j]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i + 1][j - 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i - 1][j + 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i + 1][j + 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; var tile = tiles[i - 1][j - 1]; if (tile !== undefined && tile[type] !== undefined && tile[type][subtype] !== undefined) continue; if (tiles[i][j] === undefined) { render_single_resource(i, j, type, subtype, 1); k++; } } } function inside_map(i, j) { return i >= 0 && j >= 0 && i < world.nh && j < world.nw; } function add_single_river(i, j, biome_id, current) { if (!inside_map(i, j)) return; var tiles = MAP.tiles; if (tiles[i][j] === undefined) tiles[i][j] = {}; if (tiles[i][j]["r"] !== undefined) return; var code = 0; if (inside_map(i - 1, j) && tiles[i - 1][j] !== undefined && tiles[i - 1][j]["wtb"] !== undefined) code += 2; if (inside_map(i, j - 1) && tiles[i][j - 1] !== undefined && tiles[i][j - 1]["wtb"] !== undefined) code += 8; if (inside_map(i, j + 1) && tiles[i][j + 1] !== undefined && tiles[i][j + 1]["wtb"] !== undefined) code += 16; if (inside_map(i + 1, j) && tiles[i + 1][j] !== undefined && tiles[i + 1][j]["wtb"] !== undefined) code += 64; if (inside_map(i - 1, j - 1) && (code & (8 + 2)) === 8 + 2 && tiles[i - 1][j - 1] !== undefined && tiles[i - 1][j - 1]["wtb"] !== undefined) code += 1; if (inside_map(i - 1, j + 1) && (code & (16 + 2)) === 16 + 2 && tiles[i - 1][j + 1] !== undefined && tiles[i - 1][j + 1]["wtb"] !== undefined) code += 4; if (inside_map(i + 1, j - 1) && (code & (8 + 64)) === 8 + 64 && tiles[i + 1][j - 1] !== undefined && tiles[i + 1][j - 1]["wtb"] !== undefined) code += 32; if (inside_map(i + 1, j + 1) && (code & (16 + 64)) === 16 + 64 && tiles[i + 1][j + 1] !== undefined && tiles[i + 1][j + 1]["wtb"] !== undefined) code += 128; tiles[i][j]["r"] = {}; tiles[i][j]["r"].river = code; tiles[i][j]["r"].current = current; tiles[i][j]["r"].dist = world.dist_from_biome(biome_id, j * 100 + 50, i * 100 + 50) - 400; tiles[i][j]["r"]["x"] = j * 100 + 50; tiles[i][j]["r"]["y"] = i * 100 + 50; } function render_single_resource(i, j, type, subtype, _show) { if (i < 0 || j < 0 || i >= world.nh || j >= world.nw) return; var tiles = MAP.tiles; if (tiles[i][j] === undefined) tiles[i][j] = {}; // Avoid doublon if (tiles[i][j][type] !== undefined) return 0; tiles[i][j][type] = []; tiles[i][j][type][subtype] = [ { x: j * 100 + 50, y: i * 100 + 50 } ]; if (_show === 1) add_resource_minimap(type, subtype, i, j); return 1; } this.render_single_resource = render_single_resource; function apply_animation(tile, o, anim) { if (tile[o]) { for (let k = 0; k < tile[o].length; k++) { if (!tile[o][k]) continue; for (let l = 0; l < tile[o][k].length; l++) { tile[o][k][l].hit = anim; tile[o][k][l].update = false; tile[o][k][l].time = 0; tile[o][k][l].angle = 0; } } } } this.map_wrapper = function (MAP) { /* Apply wrapper on map */ for (var i = 0; i < this.nh; i++) { for (var j = 0; j < this.nw; j++) { if (!MAP.tiles[i]) MAP.tiles[i] = []; if (!MAP.tiles[i][j]) { MAP.tiles[i][j] = []; continue; } var tile = MAP.tiles[i][j]; if (tile["de"] && tile["de"].length > 0) { for (var k = 0; k < tile["de"].length; k++) { if (tile["de"][k] && tile["de"][k].length > 0) { tile["de"] = tile["de"][k][0]; if (k >= 41 && k <= 49) { tile["de"].scale = 3; var compo = window.Math.floor(window.Math.random() * 3 + 1); tile["de"].p = []; for (var l = 0; l < compo; l++) { tile["de"].p.push({ x: window.Math.random() * 120 - 60, y: window.Math.random() * 120 - 60, angle: window.Math.random() * PI2M, _id: 41 + window.Math.floor(window.Math.random() * 9) }); } } else if (k >= 19 && k <= 26) { tile["de"].scale = 3; var compo = window.Math.floor(window.Math.random() * 3 + 1); tile["de"].p = []; for (var l = 0; l < compo; l++) { tile["de"].p.push({ x: window.Math.random() * 120 - 60, y: window.Math.random() * 120 - 60, angle: window.Math.random() * PI2M, _id: 19 + window.Math.floor(window.Math.random() * 8) }); } } else if (k <= 15 || (k >= 27 && k <= 40)) { tile["de"].angle = 0; tile["de"].scale = 2; tile["de"]._id = k; } else { tile["de"].angle = window.Math.random() * PI2M; tile["de"].scale = 1; tile["de"]._id = k; } } } } apply_animation(tile, "p", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "t", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "s", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "g", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "d", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "b", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "f", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "a", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "cs", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "plm", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "re", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "c", new LinearAnimation(false, 1, 1, 0, 10, 10)); apply_animation(tile, "m", new LinearAnimation(false, 1, 1, 0, 10, 10)); } } }; this.time = SPRITE.DAY; this.clock = { translate: { x: 0, y: 0 }, init: 0, hour: 0, now: 0 }; this.delete_all_units = function () { this.fast_units = []; this.units[ITEMS.PLAYERS] = []; this.units[ITEMS.WORKBENCH] = []; this.units[ITEMS.FIRE] = []; this.units[ITEMS.BIG_FIRE] = []; this.units[ITEMS.SEED] = []; this.units[ITEMS.SPIKE] = []; this.units[ITEMS.STONE_SPIKE] = []; this.units[ITEMS.GOLD_SPIKE] = []; this.units[ITEMS.DIAMOND_SPIKE] = []; this.units[ITEMS.AMETHYST_SPIKE] = []; this.units[ITEMS.REIDITE_SPIKE] = []; this.units[ITEMS.BRIDGE] = []; this.units[ITEMS.WOOD_TOWER] = []; this.units[ITEMS.ROOF] = []; this.units[ITEMS.PLOT] = []; this.units[ITEMS.WHEAT_SEED] = []; this.units[ITEMS.ALOE_VERA_SEED] = []; this.units[ITEMS.PUMPKIN_SEED] = []; this.units[ITEMS.TOMATO_SEED] = []; this.units[ITEMS.CARROT_SEED] = []; this.units[ITEMS.WATERMELON_SEED] = []; this.units[ITEMS.GARLIC_SEED] = []; this.units[ITEMS.THORNBUSH_SEED] = []; this.units[ITEMS.WINDMILL] = []; this.units[ITEMS.EXTRACTOR_MACHINE_STONE] = []; this.units[ITEMS.EXTRACTOR_MACHINE_GOLD] = []; this.units[ITEMS.DIAMOND_EXTRACTOR] = []; this.units[ITEMS.EXTRACTOR_MACHINE_AMETHYST] = []; this.units[ITEMS.EXTRACTOR_MACHINE_REIDITE] = []; this.units[ITEMS.WELL] = []; this.units[ITEMS.WALL] = []; this.units[ITEMS.STONE_WALL] = []; this.units[ITEMS.GOLD_WALL] = []; this.units[ITEMS.DIAMOND_WALL] = []; this.units[ITEMS.AMETHYST_WALL] = []; this.units[ITEMS.REIDITE_WALL] = []; this.units[ITEMS.BED] = []; this.units[ITEMS.WOOD_DOOR] = []; this.units[ITEMS.STONE_DOOR] = []; this.units[ITEMS.GOLD_DOOR] = []; this.units[ITEMS.DIAMOND_DOOR] = []; this.units[ITEMS.AMETHYST_DOOR] = []; this.units[ITEMS.REIDITE_DOOR] = []; this.units[ITEMS.WOOD_DOOR_SPIKE] = []; this.units[ITEMS.STONE_DOOR_SPIKE] = []; this.units[ITEMS.GOLD_DOOR_SPIKE] = []; this.units[ITEMS.DIAMOND_DOOR_SPIKE] = []; this.units[ITEMS.AMETHYST_DOOR_SPIKE] = []; this.units[ITEMS.REIDITE_DOOR_SPIKE] = []; this.units[ITEMS.FURNACE] = []; this.units[ITEMS.TOTEM] = []; this.units[ITEMS.WOOD_TOWER] = []; this.units[ITEMS.CHEST] = []; this.units[ITEMS.RESURRECTION] = []; this.units[ITEMS.EMERALD_MACHINE] = []; this.units[ITEMS.FRUIT] = []; this.units[ITEMS.RABBIT] = []; this.units[ITEMS.WOLF] = []; this.units[ITEMS.CRAB] = []; this.units[ITEMS.BOAR] = []; this.units[ITEMS.BABY_MAMMOTH] = []; this.units[ITEMS.CRAB_BOSS] = []; this.units[ITEMS.BABY_DRAGON] = []; this.units[ITEMS.BABY_LAVA] = []; this.units[ITEMS.HAWK] = []; this.units[ITEMS.PIRANHA] = []; this.units[ITEMS.KRAKEN] = []; this.units[ITEMS.FOX] = []; this.units[ITEMS.PENGUIN] = []; this.units[ITEMS.SPELL] = []; this.units[ITEMS.FIREFLY] = []; this.units[ITEMS.BEAR] = []; this.units[ITEMS.MAMMOTH] = []; this.units[ITEMS.VULTURE] = []; this.units[ITEMS.SAND_WORM] = []; this.units[ITEMS.DRAGON] = []; this.units[ITEMS.LAVA_DRAGON] = []; this.units[ITEMS.FLAME] = []; this.units[ITEMS.WHEAT_MOB] = []; this.units[ITEMS.ALOE_VERA_MOB] = []; this.units[ITEMS.PUMPKIN_MOB] = []; this.units[ITEMS.GARLIC_MOB] = []; this.units[ITEMS.THORNBUSH_MOB] = []; this.units[ITEMS.TREASURE_CHEST] = []; this.units[ITEMS.DEAD_BOX] = []; this.units[ITEMS.CRATE] = []; this.units[ITEMS.BREAD_OVEN] = []; this.units[ITEMS.SPIDER] = []; //Christmas this.units[ITEMS.GIFT] = []; this.units[ITEMS.GARLAND] = []; return; }; this.delete_units = function (id) { if (!this.fast_units[id]) return; let type = this.fast_units[id].type; this.fast_units[id] = null; /* Remove all units with this id */ var units = this.units[type]; for (var j = 0; j < units.length; j++) { if (units[j].id == id) { units.splice(j, 1); return; } if (type === ITEMS.PLAYERS && units[j].pid == id) { units.splice(j, 1); return; } } return; }; this.find_tower = function (i, j) { for (var k = 0; k < this.units[ITEMS.WOOD_TOWER].length; k++) { var b = this.units[ITEMS.WOOD_TOWER][k]; if (window.Math.floor(b.x / 100) === j && window.Math.floor(b.y / 100) === i) return 1; } return 0; }; this.find_bridge = function (i, j) { for (var k = 0; k < this.units[ITEMS.BRIDGE].length; k++) { var b = this.units[ITEMS.BRIDGE][k]; if (window.Math.floor(b.x / 100) == i && window.Math.floor(b.y / 100) == j) return true; } return false; }; this.move_units = function (list) { for (var i = 0; i < list.length; i++) { let b = list[i]; /* Update angle */ if (b.angle != b.nangle) { b.angle = (b.angle + PI2M) % PI2M; b.nangle = (b.nangle + PI2M) % PI2M; if (b.angle != b.nangle) { var diff = b.nangle - b.angle; /* Ease rotation */ var min = window.Math.abs(diff); if (min > window.Math.PI) min = PI2M - min; var rotate = 3 * (min / window.Math.PI) * WORLD.ROTATE * delta; if (diff > window.Math.PI) b.angle -= rotate; else if (diff < -window.Math.PI) b.angle += rotate; else if (diff < 0) b.angle -= rotate; else b.angle += rotate; b.angle = (b.angle + PI2M) % PI2M; if (window.Math.abs(b.angle - b.nangle) < rotate) b.angle = b.nangle; } } /* Update position */ if (b.x != b.r.x || b.y != b.r.y) { if (b.action & STATE.IDLE) b.action -= STATE.IDLE; b.action |= STATE.WALK; var a = Utils.get_std_angle(b, b.r) + window.Math.PI; var d = delta * b.speed; var v = Utils.build_vector(d, a); if (Utils.norm(v) < Utils.norm(Utils.get_vector(b, b.r))) Utils.add_vector(b, v); else { if (b.action & STATE.WALK) b.action -= STATE.WALK; b.action |= STATE.IDLE; Utils.copy_vector(b.r, b); } } /* Update bubbles of ghost */ if (b.ghost) { var bubbles = b.bubbles; var l = bubbles.length; if (l === 0 || (l < SPRITE.GHOST_BUBBLES && bubbles[l - 1].life < 0.95)) bubbles.push({ id: window.Math.floor(window.Math.random() * sprite[SPRITE.BUBBLES][0].length), x: window.Math.floor(b.x + window.Math.random() * 80 - 40), y: window.Math.floor(b.y + window.Math.random() * 80 - 40), life: 1 }); /* Decrease opacity of bubbles */ for (var j = 0; j < l; j++) bubbles[j].life = window.Math.max(0, bubbles[j].life - delta); for (var j = 0; j < l; j++) { if (bubbles[j].life === 0) { bubbles.splice(j, 1); break; } } } var has_swim = 0; if (b.move_effect && ui.quality) { var swim = b.swim; var l = swim.length; if (b.dist_water > 0 && b.vehicle !== ItemType.BABY_DRAGON && b.vehicle !== ItemType.BABY_LAVA && b.vehicle !== ItemType.PLANE && b.vehicle !== ItemType.HAWK && b.vehicle !== ItemType.NIMBUS && !b.ghost) { has_swim = 1; if (l === 0 || Utils.dist(swim[l - 1], b) > SPRITE.SWIM_SPACE) { var angle = -b.angle; var x = window.Math.sin(angle) * 45 * scale; var y = window.Math.cos(angle) * 45 * scale; swim.push({ x: b.x + x, y: b.y + y, r: 8, alpha: 0.8 }); swim.push({ x: b.x - x, y: b.y - y, r: 8, alpha: 0.8 }); swim.push({ x: b.x, y: b.y, r: 24, alpha: 1 }); } } /* Decrease opacity and increase radius of swim effect */ for (var j = 0; j < l; j++) { swim[j].alpha = window.Math.max(0, swim[j].alpha - delta / 2.2); swim[j].r += delta * 20; } if (swim.length > 0 && swim[0].alpha === 0) swim.splice(0, 1); /* Update foot print */ var foot = b.foot; var l = foot.length; var id = -1; var __s = window.Math.max(0, Utils.sign_(b.dist_sand)); var __w = window.Math.max(0, Utils.sign_(b.dist_winter)); var __r = window.Math.max(0, Utils.sign_(b.dist_desert)); var __l = window.Math.max(0, Utils.sign_(b.dist_lava)); var __d = window.Math.max(0, Utils.sign_(b.dist_dragon)); //if ((((__s ^ __w) ^ __l) ^ __d) === 0); if (b.dist_sand > 0 || b.dist_desert > 0) var id = SPRITE.SAND_STEP; else if (b.dist_dragon > 0) var id = SPRITE.CAVE_STEP; else if (b.dist_winter > 0) var id = SPRITE.SNOW_STEP; else if (b.dist_lava > 0) var id = SPRITE.LAVA_STEP; // Set special foot step for mount if (b.vehicle === ItemType.BOAR && (__s | __w | __l | __d) === 1) { id = SPRITE.BOAR_STEP; var footAngle = b.vehicle_fx2 - window.Math.PI / 2; var footDist = 15; var footDist2 = 11; var step_space = SPRITE.STEP_SPACE; } else if (b.vehicle === ItemType.BABY_MAMMOTH && (__s | __w | __l | __d) === 1) { id = SPRITE.BABY_MAMMOTH_STEP; var footAngle = b.vehicle_fx2 - window.Math.PI / 2; var footDist = 21; var footDist2 = 16; var step_space = SPRITE.STEP_SPACE; } else if (b.vehicle === ItemType.CRAB_BOSS && (__s | __w | __l | __d) === 1) { id = SPRITE.CRAB_STEP; var footAngle = b.vehicle_fx2 - window.Math.PI / 2; var footRand = window.Math.random() * 50; var footDist = 10 + footRand; var footDist2 = 0 + footRand; var step_space = SPRITE.STEP_SPACE * 0.9; } else { var footAngle = b.angle; var footDist = 15; var footDist2 = 11; var step_space = SPRITE.STEP_SPACE; } if (b.vehicle === ItemType.BABY_DRAGON || b.vehicle === ItemType.BABY_LAVA || b.vehicle === ItemType.NIMBUS || b.vehicle === ItemType.HAWK || b.vehicle === ItemType.PLANE || b.ghost); else if (b.vehicle === ItemType.SLED) { if (l === 0 || Utils.dist(foot[l - 1], b) > SPRITE.TRAIL_SPACE) foot.push({ x: b.x, y: b.y, angle: b.vehicle_fx2, alpha: 1, id: SPRITE.SLED_WAVE }); } else if (id != -1 && has_swim === 0) { if (l === 0 || Utils.dist(foot[l - 1], b) > step_space) { b.id_foot++; if (window.Math.abs(b.x - b.r.x) > 1 && window.Math.abs(b.y - b.r.y) > 1) { if ((b.r.x > b.x && b.r.y < b.y) || (b.r.x < b.x && b.r.y > b.y)) { if (b.id_foot % 2) { var x = -footDist2 * scale; var y = -footDist2 * scale; } else { var y = footDist2 * scale; var x = footDist2 * scale; } } else { if (b.id_foot % 2) { var x = footDist2 * scale; var y = -footDist2 * scale; } else { var y = footDist2 * scale; var x = -footDist2 * scale; } } } else if (b.id_foot % 2) { var x = window.Math.sin(footAngle) * footDist * scale; var y = window.Math.cos(footAngle) * footDist * scale; } else { var x = -window.Math.sin(footAngle) * footDist * scale; var y = -window.Math.cos(footAngle) * footDist * scale; } foot.push({ x: b.x + x, y: b.y + y, angle: footAngle + window.Math.PI / 2, alpha: 1, id: id }); } } /* Decrease opacity of foot step */ for (var j = 0; j < l; j++) { if (foot[j].id === SPRITE.SLED_WAVE) foot[j].alpha = window.Math.max(0, foot[j].alpha - delta * 1.5); else foot[j].alpha = window.Math.max(0, foot[j].alpha - delta / 2.85); } if (foot.length > 0 && foot[0].alpha === 0) foot.splice(0, 1); } } }; this.update = function () { this.move_units(this.units[ITEMS.PLAYERS]); this.move_units(this.units[ITEMS.RABBIT]); this.move_units(this.units[ITEMS.WOLF]); this.move_units(this.units[ITEMS.CRAB]); this.move_units(this.units[ITEMS.BOAR]); this.move_units(this.units[ITEMS.BABY_MAMMOTH]); this.move_units(this.units[ITEMS.CRAB_BOSS]); this.move_units(this.units[ITEMS.BABY_DRAGON]); this.move_units(this.units[ITEMS.BABY_LAVA]); this.move_units(this.units[ITEMS.HAWK]); this.move_units(this.units[ITEMS.SPIDER]); this.move_units(this.units[ITEMS.FOX]); this.move_units(this.units[ITEMS.PENGUIN]); this.move_units(this.units[ITEMS.SPELL]); this.move_units(this.units[ITEMS.FIREFLY]); this.move_units(this.units[ITEMS.BEAR]); this.move_units(this.units[ITEMS.MAMMOTH]); this.move_units(this.units[ITEMS.VULTURE]); this.move_units(this.units[ITEMS.SAND_WORM]); this.move_units(this.units[ITEMS.DRAGON]); this.move_units(this.units[ITEMS.FLAME]); this.move_units(this.units[ITEMS.PIRANHA]); this.move_units(this.units[ITEMS.KRAKEN]); this.move_units(this.units[ITEMS.LAVA_DRAGON]); }; this.breath = []; this.breath[SPRITE.WAVE_ONE] = new LinearAnimation(false, 1, 1.02, 1, 0.008, 0.008); this.breath[SPRITE.WAVE_TWO] = new LinearAnimation(false, 1, 1.08, 1, 0.006, 0.006); this.lava = []; this.lava[0] = new LinearAnimation(false, 0.1, 1, 0, 0.6, 0.6); this.lava[1] = new LinearAnimation(false, 0.4, 1, 0, 0.6, 0.6); this.lava[2] = new LinearAnimation(false, 0.3, 1, 0, 0.6, 0.6); this.lava[3] = new LinearAnimation(false, 0.8, 1, 0, 0.6, 0.6); this.lava[4] = new LinearAnimation(false, 0.3, 1, 0, 0.6, 0.6); this.lava[5] = new LinearAnimation(false, 0.8, 1, 0, 0.6, 0.6); this.lava[6] = new LinearAnimation(false, 0.5, 1, 0, 0.6, 0.6); this.lava[7] = new LinearAnimation(false, 0.9, 1, 0, 0.6, 0.6); this.lava[8] = new LinearAnimation(false, 0.6, 1, 0, 0.6, 0.6); this.lava[9] = new LinearAnimation(false, 0.2, 1, 0, 0.6, 0.6); this.lava[10] = new LinearAnimation(false, 0.6, 1, 0, 0.6, 0.6); this.lava[11] = new LinearAnimation(false, 0.4, 1, 0, 0.6, 0.6); this.lava[12] = new LinearAnimation(false, 0.8, 1, 0, 0.6, 0.6); this.lava[13] = new LinearAnimation(false, 0.2, 1, 0, 0.6, 0.6); this.lava[14] = new LinearAnimation(false, 0.7, 1, 0, 0.6, 0.6); } } class Flake { constructor(id, x, y, angle, size) { this.id = id; this.speed = (id + 5) * 8; this.life = canw / 1366; this.size = size; this.x = x; this.y = y; this.c = window.Math.cos(angle); this.s = window.Math.sin(angle); this.alpha = 0; } } class User { constructor() { this.login = cookiesManager.get("starve_login") ?? ""; this.password = cookiesManager.get("starve_password") ?? ""; if(this.login) { const response = fetch("/login", { method: "POST", headers: { "Content-type": "application/json" }, body: window.JSON.stringify({ login: this.login, password: this.password }) }).then(res => res.text()) .then(body => { if (body[0] !== "{") return client.new_alert(body, "#a60f1b"); ui.login_restore_data(window.JSON.parse(body)); client.new_alert("Log in account", "#27ba36"); }); } /* Resurrection info */ this.resurrection = { pid: 1, open: false }; /* well info */ this.well = { pid: 1, open: false }; /* Windmill info */ this.windmill = { amount_wheat: 0, amount_flour: 0, pid: 1, open: false }; /* Extractor info */ this.extractor = { amount_wood: 0, amount_mineral: 0, type: 0, mineral: 0, pid: 1, open: false }; /* Bread oven info */ this.bread_oven = { amount_wood: 0, amount_bread: 0, amount_flour: 0, pid: 1, open: false }; /* Furnace info */ this.furnace = { amount: 0, pid: 1, open: false }; /* User can be a ghost */ this.ghost = { enabled: false, delay: -1, label: false, now: -1, draw: draw_alert_ghost }; /* Chest info */ this.chest = { id: -1, amount: 0, pid: 1, open: false, lock: false, locked: false, lockpick: false, padlock: false }; /* Token */ this.alive = true; this.reconnect = { enabled: false, rotate: 0 }; this.key = Utils.gup("key", window.location.href); var egg = Utils.gup("egg", window.location.href); if (egg) ui.skin = parseInt(egg); this.beta = 0 === window.location.href.indexOf("http://starver.io/beta") ? 1 : 0; if (this.key && this.beta) { cookiesManager.set("starve_beta", this.key); } else if (this.beta) this.key = cookiesManager.get("starve_beta"); // CYPHER this.token = cookiesManager.get("starve_token") ? cookiesManager.get("starve_token") : Utils.generate_token(CLIENT.TOKEN_LEN); this.token_id = cookiesManager.get("starve_token_id") ? cookiesManager.get("starve_token_id") : Utils.generate_token(CLIENT.TOKEN_LEN); /* User id */ this.id = 0; this.day = 0; /* Die result */ this.die = { howdie: "", score: 0, bank: 0, kill: 0 }; /* Account */ this.account = { connected: 0, last: new window.Date().getTime() }; /* Team */ this.team = []; this.in_team = function (id) { for (var i = 0; i < this.team.length; i++) { if (this.team[i] == id) return true; } return false; }; /* Shop */ this.shop = { delay: 0, time: 0, value: 0, open: false, draw: function () { if (this.open) { var now = new window.Date().getTime(); this.time = window.Math.floor((now - this.delay) / 1000); if (this.time < 60) { game.shop.button.draw(ctx); } else { window.document.getElementById("shop_starterkit").style.display = "none"; this.open = false; } } } }; /* Totem */ this.totem = { id: -1, pid: -1, lock: 0, /* Delay totem */ timeout: new LinearAnimation(false, 0, 1, 0, 1 / 30, 1), wait: false }; /* Delay helmet */ this.helmet = { timeout: new LinearAnimation(false, 0, 1, 0, 1 / 5, 1), wait: false }; /* Delay build */ this.build = { timeout: new LinearAnimation(false, 0, 1, 0, 1, 1), wait: false }; /* Delay weapon */ this.weapon = { timeout: new LinearAnimation(false, 0, 1, 0, 1 / 10, 1), wait: false }; this.cam = new Ease2d(Utils.ease_out_quad, 0, 0.4, 0, 0, canw2, canh2, canw2, canh2); this.cam.delay = 0; this.cam.forcedDelay = 0; this.cam.update = function () { if (this.forcedDelay > 0) { this.forcedDelay -= delta; return; } var p = world.fast_units[user.id]; if (p) { this.delay = 0; var x = window.Math.max(window.Math.min(canw2 - p.x, -2), -world.w + 2 + canw); var y = window.Math.max(window.Math.min(canh2 - p.y, -2), -world.h + 2 + canh); this.ease({ x: x, y: y }); /* If player lost focus */ } else { this.delay += delta; if (this.delay > 3) { this.delay = 0; if (!user.reconnect.enabled) client.get_focus(); } } }; this.cam.change = function (x, y) { this.x = -window.Math.min(window.Math.max(-world.dw * 2, x - world.dw - this.rw / 2), world.w - this.rw); this.y = -window.Math.min(window.Math.max(-world.dh * 2, y - (world.dh + this.rh) / 2), world.h - this.rh + world.dh); this.ex = this.x; this.ey = this.y; }; this.control = { angle: 0, timeout: 0, previous: 0, mouse: 0, attack: 0, update: function () { /* Update angle of player */ var p = world.fast_units[user.id]; if (p) var pos = { x: user.cam.x + p.x, y: user.cam.y + p.y }; else var pos = canm; var angle = Utils.get_std_angle(mouse.pos, pos); /* Send Attack */ var attacked = false; this.mouse += delta; if (!mouse.state) { if (p && !(p.action & STATE.ATTACK) && this.mouse > CLIENT.ATTACK) { this.attack = 1; attacked = true; this.mouse = 0; client.send_attack(angle); } } if (p) { p.angle = angle; p.nangle = angle; } if (!attacked) { this.timeout += delta; if (this.timeout > CLIENT.ROTATE) { this.timeout = 0; /* Optimize bandwidth */ if (window.Math.abs(this.angle - angle) > 0.005) { client.send_angle(angle); this.angle = angle; } } } if (user.chat.open) return; if (user.terminal.open) return; var move = 0; var left = keyboard.is_left(); if (left) move |= 1; var right = keyboard.is_right(); if (right) move |= 2; var bottom = keyboard.is_bottom(); if (bottom) move |= 4; var top = keyboard.is_top(); if (top) move |= 8; if (this.previous != move) client.send_move(move); this.previous = move; } }; this.gauges = { c: 1, l: 1, h: 1, t: 1, o: 1, wa: 1, warn_cold: new LinearAnimation(true, 0, 1, 0, 3, 3), warn_life: new LinearAnimation(true, 0, 1, 0, 2, 2), warn_hunger: new LinearAnimation(true, 0, 1, 0, 3, 3), warn_thirst: new LinearAnimation(true, 0, 1, 0, 3, 3), warn_oxygen: new LinearAnimation(true, 0, 1, 0, 3, 3), warn_warm: new LinearAnimation(true, 0, 1, 0, 3, 3), cold: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), life: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), hunger: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), thirst: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), oxygen: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), warm: new Ease(Utils.ease_out_quad, 0, 1, 0, 0, 1), update: function () { this.warn_cold.update(); this.warn_life.update(); this.warn_hunger.update(); this.warn_thirst.update(); this.warn_oxygen.update(); this.warn_warm.update(); this.cold.ease(this.c); this.life.ease(this.l); this.hunger.ease(this.h); this.thirst.ease(this.t); this.oxygen.ease(this.o); this.warm.ease(this.wa); } }; this.bigmap = false; this.zombie = false; this.vampire = false; this.inv = { max: WORLD.WITHOUT_BAG, bonus: 0, bag: 0, n: [], can_select: [], update_bag_size: function (_bag, _bonus) { if (_bag === 1) this.bag = WORLD.BAG_SIZE; this.bonus += _bonus; this.max = WORLD.WITHOUT_BAG + this.bonus + this.bag; }, drag: { item: -1, img: null, _start: 0, _move: 0, _x: -1, _y: -1, move: function (mouse) { if (this._start && (mouse.x !== this._x || mouse.y !== this._y)) this._move = 1; }, start: function (item, mouse) { this._x = mouse.x; this._y = mouse.y; this.item = item; this.img = user.inv.can_select[item].info.img[2]; this._start = 1; }, stop: function () { this._start = 0; this._move = 0; this._x = -1; this._y = -1; }, release: function () { var item = -1; var buttons = user.inv.can_select; var ret = 0; if (this._start && this._move) { for (var i = 0; i < buttons.length; i++) { if (buttons[i].info.state === BUTTON_IN) { item = i; break; } } if (item !== -1 && item !== this.item && buttons[this.item]) { ret = 1; var tmp = buttons[item]; buttons[item] = buttons[this.item]; buttons[this.item] = tmp; game.update_inv_buttons(); } } this.stop(); return ret; }, draw: function (x, y) { if (!this._start || !this._move) return; ctxDrawImage(ctx, this.img, window.Math.floor(x - this.img.width / 2), window.Math.floor(y - this.img.height / 2)); } }, free_place: function (r) { for (let i = 0; i < r.length; i++) { if (this.n[r[i][0]] == r[i][1]) return true; } return false; }, find_item: function (id) { for (var i = 0; i < this.can_select.length; i++) { if (this.can_select[i].id == id) return i; } return -1; }, delete_item: function (id, i) { this.n[id] = 0; this.can_select.splice(i, 1); game.update_inv_buttons(); }, decrease: function (id, n, i) { this.n[id] = window.Math.max(0, this.n[id] - n); if (!this.n[id] && i >= 0) this.delete_item(id, i); } }; this.auto_feed = { enabled: false, translate: { x: 0, y: 0 }, delay: 0, invert: function () { user.auto_feed.enabled = !user.auto_feed.enabled; if (user.auto_feed.enabled) game.options.feed_agree.display = "inline-block"; else game.options.feed_agree.display = "none"; }, update: function () { if (!this.enabled || user.craft.id >= 0 || game.safe_delete.open) return; this.delay += delta; if (this.delay > 2) { this.delay = 0; if (user.gauges.h < 0.35) { if (user.inv.n[ItemType.BERRY]) client.select_inv(ItemType.BERRY, user.inv.find_item(ItemType.BERRY)); else if (user.inv.n[ItemType.GARLIC]) client.select_inv(ItemType.GARLIC, user.inv.find_item(ItemType.GARLIC)); else if (user.inv.n[ItemType.CRAB_STICK]) client.select_inv(ItemType.CRAB_STICK, user.inv.find_item(ItemType.CRAB_STICK)); else if (user.inv.n[ItemType.PUMPKIN]) client.select_inv(ItemType.PUMPKIN, user.inv.find_item(ItemType.PUMPKIN)); else if (user.inv.n[ItemType.TOMATO]) client.select_inv(ItemType.TOMATO, user.inv.find_item(ItemType.TOMATO)); else if (user.inv.n[ItemType.CARROT]) client.select_inv(ItemType.CARROT, user.inv.find_item(ItemType.CARROT)); else if (user.inv.n[ItemType.WATERMELON]) client.select_inv(ItemType.WATERMELON, user.inv.find_item(ItemType.WATERMELON)); else if (user.inv.n[ItemType.BREAD]) client.select_inv(ItemType.BREAD, user.inv.find_item(ItemType.BREAD)); else if (user.inv.n[ItemType.COOKED_MEAT]) client.select_inv(ItemType.COOKED_MEAT, user.inv.find_item(ItemType.COOKED_MEAT)); else if (user.inv.n[ItemType.FISH_COOKED]) client.select_inv(ItemType.FISH_COOKED, user.inv.find_item(ItemType.FISH_COOKED)); else if (user.inv.n[ItemType.COOKIE]) client.select_inv(ItemType.COOKIE, user.inv.find_item(ItemType.COOKIE)); else if (user.inv.n[ItemType.SANDWICH]) client.select_inv(ItemType.SANDWICH, user.inv.find_item(ItemType.SANDWICH)); else if (user.inv.n[ItemType.CAKE]) client.select_inv(ItemType.CAKE, user.inv.find_item(ItemType.CAKE)); else if (user.inv.n[ItemType.CRAB_LOOT]) client.select_inv(ItemType.CRAB_LOOT, user.inv.find_item(ItemType.CRAB_LOOT)); } else if (user.gauges.t < 0.35) { if (user.inv.n[ItemType.BOTTLE_FULL]) client.select_inv(ItemType.BOTTLE_FULL, user.inv.find_item(ItemType.BOTTLE_FULL)); } } } }; game.options.feed_agree.display = "none"; this.craft = { id: -1, timeout: new LinearAnimation(false, 0, 1, 0, 1, 1), crafting: false, preview: -1, mode: 0, label: [], can_craft: [], workbench: false, fire: false, water: false, well: false, change_mode: function () { this.mode = this.mode === 0 ? 1 : 0; }, set_workbench: function (val) { this.workbench = val; var safe = game.safe_delete; if (safe.open) safe.del(safe.button); this.update(); }, do_recycle: function (id) { var r = RECIPES[id]; if (!r) return; this.id = id; this.crafting = true; var p = world.fast_units[user.id]; this.timeout.max_speed = 1 / r.time * 8; if (p && p.right == ItemType.BOOK) this.timeout.max_speed = 1 / r.time * 12; }, do_craft: function (id) { var r = RECIPES[id]; if (!r) return; this.id = id; this.crafting = true; var p = world.fast_units[user.id]; if (p && p.right == ItemType.BOOK) this.timeout.max_speed = 1 / r.time * 6; else this.timeout.max_speed = 1 / r.time; for (var i = 0; i < r.r.length; i++) { var o = r.r[i]; user.inv.decrease(o[0], o[1], user.inv.find_item(o[0])); } game.update_inv_buttons(); }, update: function () { this.can_craft = []; /* Reset info box */ if (game.info_box.craft === 1) game.info_box.display = 0; /* Compute available receipes */ for (let i = 0; i < RECIPES.length; i++) { var r = RECIPES[i]; var can_craft = true; /* Fix this stupid plugin dammit */ if (!r) continue; for (var j = 0; j < r.r.length; j++) { /* Do not craft multiple bag */ if (user.inv.max >= WORLD.WITH_BAG && i === ItemType.BAG) { can_craft = false; break; } /* Need workbench or fire or water ? */ if (r.w > this.workbench || r.f > this.fire || r.o > this.water || r.e > this.well) { can_craft = false; break; } var o = r.r[j]; if (!user.inv.n[o[0]] || user.inv.n[o[0]] < o[1]) { can_craft = false; break; } } if (can_craft) this.can_craft.push(game.craft_buttons[i]); } game.update_craft_buttons(); game.update_chest_buttons(); game.update_furnace_button(); game.update_windmill_button(); game.update_extractor_button(); game.update_bread_oven_button(); }, restart: function () { this.id = -1; this.crafting = false; this.timeout.v = 0; this.timeout.o = false; this.update(); } }; this.welcome = { message: undefined, draw: draw_welcome_message }; this.alert = { timeout: new LinearAnimation(false, 1, 1, 0, 4, 0.3), text: "", label: null, draw: draw_alert, list: [] }; /* Create leaderboard */ this.ldb = { can: window.document.createElement("canvas"), ids: [], update: true, translate: { x: 0, y: 0 }, sort: function () { var sortable = []; var players = world.players; for (var i = 0; i < players.length; i++) { if (players[i].alive) sortable.push({ id: i, s: players[i].score }); } sortable.sort(function (a, b) { return b.s - a.s; }); this.ids = []; for (var i = 0; i < sortable.length && i < 10; i++) this.ids.push(sortable[i].id); this.update = true; }, init: function (u) { for (var i = 0 ; i < world.players.length ; i++) world.players[i].score = 0; /* Set personal score */ world.players[user.id].score = Utils.restore_number(u[1]); /* Set new score */ this.ids = []; for (var i = 2; i < u.length; i += 2) { this.ids.push(u[i]); world.players[u[i]].score = Utils.restore_number(u[i + 1]); } this.update = true; } }; this.ldb.can.width = 180 * scale; this.ldb.can.height = 300 * scale; this.ldb.ctx = this.ldb.can.getContext("2d"); this.terminal = { open: false, input: window.document.getElementById("commandInput"), contentBox: window.document.getElementById("commandsBox"), style: window.document.getElementById("commandMainBox").style, lastCommands: [], commandIndex: 0, _print: function (d) { this.contentBox.innerHTML += d; }, update: function () { this.style.left = window.Math.floor(canw / 2 - 300) + "px"; this.style.top = window.Math.floor(canh / 2 - 250) + "px"; }, _clean: function () { this.contentBox.innerHTML = ""; }, quit: function () { this.open = false; this.style.display = "none"; }, create_array: function (datas) { var content = ''; for (var i = 0; i < datas.length; i++) { if (i % 3 === 0) content += ""; content += '"; if ((i + 1) % 3 === 0 || i + 1 === datas.length) content += ""; } content += "
    ' + datas[i] + "
    "; return content; }, write_command: function (cmd, isSucceed, answer, content) { cmd = !cmd ? "" : cmd; isSucceed = !isSucceed ? "" : isSucceed; answer = !answer ? "" : answer; content = !content ? "" : content; var data = "
    " + cmd; if (isSucceed) data += "
    "; else data += "
    "; data += answer + "
    " + content + "
    "; this._print(data); this.scroll_down(); }, scroll_down: function () { this.contentBox["scrollTop"] = this.contentBox["scrollHeight"]; return; }, commands: function (msg) { switch (msg) { case "clean": this._clean(); return true; case "list": let list = ""; var players = world.players; for (var i = 0; i < players.length; i++) { var player = players[i]; if (player.alive) { list += player.nickname.replaceAll("<", "< ") + ' #' + i + "\n"; } } this.write_command("list", 1, "List all connected players", list); return true; case "weapon-list": this.write_command("Weapons", 1, "List all weapons in the game", this.create_array(["sword_wood", "sword", "sword_gold", "sword_diamond", "sword_amethyst", "sword_reidite", "dragon_sword", "lava_sword", "cursed_sword", "sword_pirate", "wood_spear", "spear", "gold_spear", "diamond_spear", "amethyst_spear", "reidite_spear", "dragon_spear", "lava_spear", "crab_spear", "wood_bow", "wood_arrow"])); return true; case "tool-list": this.write_command("Tools", 1, "List all tools in the game", this.create_array(["pick_wood", "pick", "pick_gold", "pick_diamond", "pick_amethyst", "pick_reidite", "hammer", "hammer_gold", "hammer_diamond", "hammer_amethyst", "hammer_reidite", "super_hammer", "shovel", "shovel_gold", "shovel_diamond", "shovel_amethyst", "shovel_reidite", "pitchfork", "pitchfork2", "spanner", "book"])); return true; case "survival-list": this.write_command("Survival Items", 1, "List all survival items in the game", this.create_array(["fire", "workbench", "bandage", "big_fire", "furnace", "paper", "blue_cord", "lock", "lockpick", "totem", "resurrection", "bridge", "bottle_full", "bottle_empty", "watering_can", "watering_can_full", "windmill", "plot", "bread_oven", "chest", "bucket_empty", "bucket_full", "well", "roof", "bed", "boat", "sled", "boar", "saddle", "emerald_machine", "extractor_stone", "extractor_gold", "extractor_diamond", "extractor_amethyst", "extractor_reidite_button"])); return true; case "resource-list": this.write_command("Resources", 1, "List all resources in the game", this.create_array(["wood", "stone", "gold", "diamond", "amethyst", "reidite", "fur", "fur_wolf", "fur_winter", "cord", "scales", "penguin_feather", "flame", "sand", "ground", "ice", "dragon_heart", "lava_heart", "kraken_skin", "special_fur", "special_fur_2", "gemme_green", "gemme_orange", "gemme_blue", "dragon_cube", "dragon_orb", "lava_cube", "lava_orb", "fur_boar", "pitchfork_part", "pilot_glasses", "fur_mammoth"])); return true; case "food-list": this.write_command("Food", 1, "List all food in the game", this.create_array(["plant", "seed", "meat", "cooked_meat", "flour", "wheat_seed", "cookies", "wild_wheat", "cake", "fish", "cooked_fish", "bread", "sandwich", "pumpkin_seed", "pumpkin", "garlic_seed", "garlic", "thornbush_seed", "thornbush", "crab_stick", "claw", "carrot_seed", "carrot", "tomato_seed", "tomato", "watermelon_seed", "watermelon", "aloe_vera_seed", "aloe_vera", "cactus"])); return true; case "hat-list": this.write_command("Hats", 1, "List all hats in the game", this.create_array(["earmuffs", "coat", "scarf", "fur_hat", "warm_protection", "warm_protection2", "warm_protection3", "explorer_hat", "pirate_hat", "wood_helmet", "stone_helmet", "gold_helmet", "diamond_helmet", "amethyst_helmet", "reidite_helmet", "dragon_helmet", "lava_helmet", "crab_helmet", "diving_mask", "super_diving_suit", "crown_green", "crown_orange", "crown_blue", "hood", "peasant", "winter_hood", "winter_peasant", "bag", "turban1", "turban2", "pilot_hat"])); return true; case "building-list": this.write_command("Buildings", 1, "List all buildings in the game", this.create_array(["wall", "stone_wall", "gold_wall", "diamond_wall", "amethyst_wall", "reidite_wall", "spike", "stone_spike", "gold_spike", "diamond_spike", "amethyst_spike", "reidite_spike", "wood_door", "stone_door", "gold_door", "diamond_door", "amethyst_door", "reidite_door", "wood_spike_door", "stone_spike_door", "gold_spike_door", "diamond_spike_door", "amethyst_spike_door", "reidite_spike_door"])); return true; case "biome-list": this.write_command("Biomes list", 1, "List all available biomes in the game", this.create_array(["forest", "winter", "lava", "sea", "beach", "island", "dragon"])); return true; case "help-config": this.write_command("Help Configuration", 1, "Learn how to build your customized map", '
    To get the current map configuration, and modify it, copy the result of get-config in a text file and change every parameter you want.
    To modify the settings, change a number to another with set-config
    To modify the map, modify "important" section (at the end)
    The minimum size of the map is 50x50.
    "custom_map" is used to change the biomes and is written like this :
    "custom_map":[["biome",width,height],...,["biome",width,height]]
    Biomes are "forest", "lava", "winter", and "dragon".'); return true; case "pos": let p = world.fast_units[user.id]; this.write_command("pos", 1, "Your position is " + window.Math.floor(p.x / 100) + ":" + window.Math.floor(p.y / 100)); return true; case "help-admin": this.write_command( "help-admin", 1, "List all available commands for admin only", this.create_array([ "restart", "m | message", "mt | message-to", "w | welcome", "name", "password", "k | kick", "b | ban", "tp | teleport", "tpa | teleport-all", "tpt | teleport-to", "pos", "heal", "cancel-craft", "da | disable-attack", "pvp | disable-pvp", "dgs | disable-gather-score", "drs | disable-resource", "dms | disable-mob-safety", "ds | disable-shop", "dn | disable-nickname", "dch | disable-chat", "dq | disable-quest", "dd | disable-drop", "ddc | disable-drop-crate", "db | disable-crate", "dwg | disable-warm-gauge", "dk | disable-kit", "dc | disable-craft", "dr | disable-recycling", "disable-clock", "disable-recipes-book", "disable-market", "sb | spawn-building", "fsb | force-spawn-building", "sch | spawn-chest", "spawn-area", "spawn-area-team", "cl | clean-position", "cba | clean-building-all", "ci | clean-inventory", "cia | clean-inventory-all", "harvest", "gs | give-score", "gsa | give-score-all", "rs | reset-score", "rk | reset-kill", "gm | godmode", "instant-craft", "ka | kill-animals", "g | give", "ga | give-to-all", "ri | remove-item", "ria | remove-item-all", "spawn-location", "tm | team-mode", "default-nickname", "mm | murder-mode", "br | battle-royale", "help-config", "gc | get-config", "sc | set-config", "reset-config", "save-config", "reset-event-time" ]) ); return true; case "help": this.write_command("help", 1, "List all available commands", this.create_array(["clean", "list", "pos", "help-admin", "help", "weapon-list", "tool-list", "survival-list", "resource-list", "food-list", "hat-list", "building-list", "biome-list"])); return true; } return false; }, _open: function () { /* Open terminal input */ if (!this.open) { this.open = true; this.style.display = "inline-block"; this.input.focus(); this.commandIndex = 0; } }, _send: function () { var msg = this.input.value; const lastCommand = this.lastCommands[this.lastCommands.length - 1]; if (msg && msg.length > 0) { if (this.lastCommands.length < 100 && msg !== lastCommand) { this.lastCommands.push(msg); } else if (msg !== lastCommand) { this.lastCommands.push(msg); this.lastCommands.splice(0, 1); } if (!this.commands(msg)) client.send_command(this.input.value); this.input.value = ""; } } }; this.chat = { open: false, input: window.document.getElementById("chat_input"), style: window.document.getElementById("chat_block").style, update: function () { this.style.left = window.Math.floor(canw / 2 - 150) + "px"; this.style.top = window.Math.floor(canh / 2 + 80) + "px"; }, quit: function () { this.open = false; this.style.display = "none"; this.input.value = ""; }, prefix: "!", cmd: { hud: function (param) { if (param === "off") { var msg = 'Enter "!hud" without the quotes to restore the HUD'; if (!user.alert.text) user.alert.text = msg; else user.alert.list.push(msg); game.show_ui = 0; } else game.show_ui = 1; } }, commands: function (msg) { /* Is the message a command ? */ if (msg.startsWith(this.prefix)) { var cmd = ""; var param = ""; /* Extract message */ for (var i = 1; i < msg.length && msg.charAt(i) != " "; i++) cmd += msg.charAt(i); /* Extract parameters */ i++; for (; i < msg.length; i++) param += msg.charAt(i); var fun = this.cmd[cmd]; if (fun) fun(param); return true; } else return false; }, run: function () { /* Skip chat if user still display a message */ /* Open chat input */ if (!this.open) { this.open = true; this.style.display = "inline-block"; this.input.focus(); /* Send chat message */ } else { this.open = false; this.style.display = "none"; var msg = this.input.value; if (msg) { if (!this.commands(msg)) client.send_chat(this.input.value); this.input.value = ""; } } } }; this.ash = { flakes: [], update: function (f) { f.y += delta * 80 * f.s; f.x += delta * 80 * f.c; f.life -= delta / 6; if (f.life > 0.2) f.alpha = window.Math.min(f.alpha + delta * 3, 1); else f.alpha = window.Math.max(f.alpha - delta * 1, 0); }, add: function () { var length = window.Math.floor(window.Math.min(SPRITE.ASHES_NUMBER * (canw / 1366), SPRITE.ASHES_NUMBER + 10) * window.Math.max(window.Math.min(world.dist_lava + 1000, 3000) / 3000, 0)); if (this.flakes.length < length) { var id = window.Math.floor(window.Math.random() * SPRITE.ASHES_SIZES); var x = -user.cam.x + window.Math.floor(window.Math.random() * canw); var y = -user.cam.y + window.Math.floor(window.Math.random() * canh); var angle = window.Math.random(window.Math.PI); this.flakes.push(new Flake(id, x, y, angle)); } } }; this.blizzard = 0; this.bandage = 0; this.captcha = ""; this.desert = { flakes: [], tempest: 0, tempest_speed: 0, update: function (f) { f.y += delta * (200 + 800 * this.tempest_speed) * f.s; f.x += delta * (200 + 800 * this.tempest_speed) * f.c; f.life -= delta / 6; if (f.life > 0.2) f.alpha = window.Math.min(f.alpha + delta * 3, 1); else f.alpha = window.Math.max(f.alpha - delta * 1, 0); }, add: function (pos) { var length = window.Math.floor(window.Math.min((this.tempest_speed + 0.1) * SPRITE.SAND_NUMBER * (canw / 1366), (this.tempest_speed + 0.1) * SPRITE.SAND_NUMBER + 10) * window.Math.max(window.Math.min(world.dist_desert + 1000, 3000) / 3000, 0)); if (this.flakes.length < length) { var id = window.Math.floor(window.Math.random() * SPRITE.ASHES_SIZES); var x = -user.cam.x + window.Math.floor(window.Math.random() * canw); var y = -user.cam.y + window.Math.floor(window.Math.random() * canh); var angle = window.Math.random(window.Math.PI); if (user.desert.tempest !== 0) x -= canw / 2; this.flakes.push(new Flake(id, x, y, angle)); } } }; this.winter = { flakes: [], tempest: 0, tempest_speed: 0, update: function (f) { if (keyboard.is_bottom()) f.y += delta * f.speed * (5.5 + 10 * this.tempest_speed); else f.y += delta * f.speed * (5 + 10 * this.tempest_speed); f.life -= delta / 2; if (keyboard.is_left()) f.x += delta * (100 + 400 * this.tempest_speed); else if (keyboard.is_right()) f.x -= delta * (130 - 400 * this.tempest_speed); else f.x -= delta * (30 - 400 * this.tempest_speed); if (f.life > 0.2) f.alpha = window.Math.min(f.alpha + delta * 3, 1); else f.alpha = window.Math.max(f.alpha - delta * 5, 0); }, add: function () { var length = window.Math.floor(window.Math.min((this.tempest_speed * 1.5 + 0.5) * SPRITE.FLAKES_NUMBER * (canw / 1366), (this.tempest_speed * 1.5 + 0.5) * SPRITE.FLAKES_NUMBER + 10) * window.Math.max(window.Math.min(world.dist_winter + 1000, 3000) / 3000, 0)); if (this.flakes.length < length) { var id = window.Math.floor(window.Math.random() * SPRITE.FLAKES_SIZES); var x = -user.cam.x + window.Math.floor(window.Math.random() * canw); var y = -user.cam.y + window.Math.floor(window.Math.random() * 400 * scale - 200 * scale); this.flakes.push(new Flake(id, x, y, 0)); } } }; function Beach() { this.seed = 1; this.seed2 = 2; this.seed3 = 3; this.seedv = 1; this.seedv2 = 2; this.seedv3 = 3; this.new_seed = function (x) { this.seed = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.new_seed2 = function (x) { this.seed2 = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.new_seed3 = function (x) { this.seed3 = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.new_seedv = function (x) { this.seedv = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.new_seedv2 = function (x) { this.seedv2 = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.new_seedv3 = function (x) { this.seedv3 = 2 + window.Math.floor(window.Math.random() * WORLD.SEED); }; this.draw_foam_vert = function (y, p, seed, r1, r2, _left, _right) { for (var i = 1; i < _right;) { /* Get random value */ var j = (i * seed) % RAND_SIZE; var v = RANDOM[j]; /* Make gap */ if (v < 0.1) { r += 50; i += 50; continue; } /* Move randomly the floam */ var r = window.Math.floor(v * r1 + r2); if (i > _left && i < _right) { /* Compute random sign */ var s = window.Math.random() > 0.5 ? -10 * delta : 10 * delta; var radius = r * p; this.bxv[j] = window.Math.max(-WORLD.FLOAM_X, window.Math.min(WORLD.FLOAM_X, this.bxv[j] + s)); this.byv[j] = window.Math.max(-WORLD.FLOAM_Y, window.Math.min(WORLD.FLOAM_Y, this.byv[j] + s)); /* Draw floam bubbles */ if (radius > 0) { ctx.beginPath(); ctx.arc(i + user.cam.x + this.byv[j], y + this.bxv[j] - WORLD.FLOAM_X * 0.8, radius, 0, PI2M); if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x53, 0x9c, 0xa0, 0xec, 0xf7, 0xf9, shade); } else ctx.fillStyle = SPRITE.FLOAM_COLOR[world.time]; ctx.fill(); } } i += 2 * r; } }; this.draw_foam = function (x, p, seed, r1, r2, _top, _bottom) { for (var i = 1; i < _bottom;) { /* Get random value */ var j = (i * seed) % RAND_SIZE; var v = RANDOM[j]; /* Make gap */ if (v < 0.1) { r += 50; i += 50; continue; } /* Move randomly the floam */ var r = window.Math.floor(v * r1 + r2); if (i > _top && i < _bottom) { /* Compute random sign */ var s = window.Math.random() > 0.5 ? -10 * delta : 10 * delta; var radius = r * p; this.bx[j] = window.Math.max(-WORLD.FLOAM_X, window.Math.min(WORLD.FLOAM_X, this.bx[j] + s)); this.by[j] = window.Math.max(-WORLD.FLOAM_Y, window.Math.min(WORLD.FLOAM_Y, this.by[j] + s)); /* Draw floam bubbles */ if (radius > 0) { ctx.beginPath(); ctx.arc(x + this.bx[j] - WORLD.FLOAM_X * 0.8, i + user.cam.y + this.by[j], radius, 0, PI2M); if (world.transition) { var shade = world.time ? 1 - world.shade.v : world.shade.v; ctx.fillStyle = get_color_transition(0x53, 0x9c, 0xa0, 0xec, 0xf7, 0xf9, shade); } else ctx.fillStyle = SPRITE.FLOAM_COLOR[world.time]; ctx.fill(); } } i += 2 * r; } }; this.draw_foams_bottom = function (y, y2, y3, diff_y, _left, _right) { _left -= 30; _right += 30; var p = -((y3 - WORLD.LW1SX - diff_y - 2) / WORLD.W1EX); if (p === 0) this.new_seed3(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y3, p, this.seed3, 18, 16, _left, _right); ctx.globalAlpha = 1; var p = -((y - WORLD.LW2SX - diff_y + 500) / WORLD.W2EX); if (p === 0) this.new_seed(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y, p, this.seed, 12, 10, _left, _right); ctx.globalAlpha = 1; if (y2 === -1) return; var p = -((y2 - WORLD.LW3SX - diff_y + 698) / WORLD.W3EX); if (p <= 0.01) this.new_seed2(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y2, p, this.seed2, 6, 6, _left, _right); ctx.globalAlpha = 1; }; this.draw_foams_top = function (y, y2, y3, diff_y, _left, _right) { _left -= 30; _right += 30; var p = -((-y3 + WORLD.LW1SX + diff_y + 2) / WORLD.W1EX); if (p === 0) this.new_seed3(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y3, p, this.seed3, 18, 16, _left, _right); ctx.globalAlpha = 1; var p = -((-y + WORLD.LW2SX + diff_y) / WORLD.W2EX); if (p === 0) this.new_seed(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y, p, this.seed, 12, 10, _left, _right); ctx.globalAlpha = 1; if (y2 === -1) return; var p = -((-y2 + WORLD.LW3SX + diff_y) / WORLD.W3EX); if (p <= 0.01) this.new_seed2(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam_vert(y2, p, this.seed2, 6, 6, _left, _right); ctx.globalAlpha = 1; }; this.draw_foams_left = function (x, x2, x3, diff_x, _top, _bottom) { _top -= 30; _bottom += 30; var p = -((-x3 + WORLD.LW1SX + diff_x + 2) / WORLD.W1EX); if (p === 0) this.new_seed3(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x3, p, this.seed3, 18, 16, _top, _bottom); ctx.globalAlpha = 1; var p = -((-x + WORLD.LW2SX + diff_x) / WORLD.W2EX); if (p === 0) this.new_seed(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x, p, this.seed, 12, 10, _top, _bottom); ctx.globalAlpha = 1; if (x2 === -1) return; var p = -((-x2 + WORLD.LW3SX + diff_x) / WORLD.W3EX); if (p <= 0.01) this.new_seed2(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x2, p, this.seed2, 6, 6, _top, _bottom); ctx.globalAlpha = 1; }; this.draw_foams_right = function (x, x2, x3, diff_x, _top, _bottom) { _top -= 30; _bottom += 30; var p = -((x3 - WORLD.LW1SX - diff_x - 2) / WORLD.W1EX); if (p === 0) this.new_seed3(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x3, p, this.seed3, 18, 16, _top, _bottom); ctx.globalAlpha = 1; var p = -((x - WORLD.LW2SX - diff_x + 500) / WORLD.W2EX); if (p === 0) this.new_seed(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x, p, this.seed, 12, 10, _top, _bottom); ctx.globalAlpha = 1; if (x2 === -1) return; var p = -((x2 - WORLD.LW3SX - diff_x + 698) / WORLD.W3EX); if (p <= 0.01) this.new_seed2(); ctx.globalAlpha = Utils.ease_in_out_quad(p); this.draw_foam(x2, p, this.seed2, 6, 6, _top, _bottom); ctx.globalAlpha = 1; }; this.w1 = { r: new Ease(Utils.ease_out_cubic, 0, 10, WORLD.W1SX, WORLD.W1SX, WORLD.W1EX), l: new Ease(Utils.ease_in_out_cubic, 0, 10, WORLD.W1EX, WORLD.W1EX, WORLD.W1SX) }; this.w2 = { r: new Ease(Utils.ease_out_quart, 0, 10, WORLD.W2SX, WORLD.W2SX, WORLD.W2EX), l: new Ease(Utils.ease_in_out_quad, 0, 10, WORLD.W2EX, WORLD.W2EX, WORLD.W2SX) }; this.w3 = { r: new Ease(Utils.ease_out_quint, 0, 10, WORLD.W3SX, WORLD.W3SX, WORLD.W3EX), l: new Ease(Utils.ease_in_out_quad, 0, 10, WORLD.W3EX, WORLD.W3EX, WORLD.W3SX) }; this.t_ = function (w_) { var w; if (w_.r.x === w_.r.ex) { if (w_.l.x === w_.l.ex) { w = w_.r; } else w = w_.l; } else w = w_.r; return w; }; this.t = function (w_) { var w; if (w_.r.x === w_.r.ex) { if (w_.l.x === w_.l.ex) { w_.r.restart(); w_.l.restart(); w = w_.r; } else w = w_.l; } else w = w_.r; w.ease(w.ex); return w; }; this.bx = []; this.by = []; this.bxv = []; this.byv = []; this.init = function () { for (var i = 0; i < RAND_SIZE; i++) { this.bx[i] = window.Math.floor(RANDOM[i] * WORLD.FLOAM_X); this.by[i] = window.Math.floor(RANDOM[i] * WORLD.FLOAM_Y); this.bxv[i] = window.Math.floor(RANDOM[i] * WORLD.FLOAM_X); this.byv[i] = window.Math.floor(RANDOM[i] * WORLD.FLOAM_Y); } this.w1.r.x = this.w1.r.ex; this.w2.r.ed = 3.5; this.w3.r.ed = 2; }; this.init(); } this.beach = []; for (var i = 0; i < 4; i++) this.beach.push(new Beach()); } } class Loader { constructor(can, ctx, after_loading_stuff) { this.can = can; this.ctx = ctx; /* Misc objects */ this.logo = { translate: { x: 0, y: 0 }, style: window.document.getElementById("loading").style, update: function () { this.style.left = this.translate.x + "px"; this.style.top = window.Math.floor(this.translate.y) + "px"; } }; this.logo.style.position = "absolute"; this.logo.style.display = "inline-block"; this.logo.update(); /* Check if loader is running */ this.is_run = true; this.stop = function () { this.is_run = false; }; /* Create object of loader */ this.loading = { total: 1 /* load images */ }; /* WATCH OUT, I'M NOT SURE ABOUT THIS TRICK, IT MAY BE A SOURCE OF BUG * * That seem work for use this object in a event listener */ var _this = this; /* Quit effect, all content escape from the top */ var fun_after_quit = function () { }; var quit_effect_step = 0; var quit_effect_max_step = 60; this.quit_effect = function () { _this.update(); quit_effect_step++; if (quit_effect_step == quit_effect_max_step) { _this.stop(); fun_after_quit(); return; } window.setTimeout(_this.quit_effect, CONFIG.frameTimeout); }; /* Quit with nice effect and run next funtion */ this.quit = function (fun) { /* Will be run after quit */ fun_after_quit = fun; _this.quit_effect(); }; /* Load funtion image */ var TIMEDEBUG_IMAGE = new window.Date().getTime(); function need_to_load_this_image(name) { if (name.indexOf("normal-mode") !== -1 || name.indexOf("player0") !== -1) return 1; if ( name.indexOf("day-bag") !== -1 || name.indexOf("night-bag") !== -1 || name.indexOf("day-book") !== -1 || name.indexOf("night-book") !== -1 || name.indexOf("day-player") !== -1 || name.indexOf("night-player") !== -1 || name.indexOf("day-accessory") !== -1 || name.indexOf("night-accessory") !== -1 || name.indexOf("day-crate") !== -1 || name.indexOf("night-crate") !== -1 || name.indexOf("day-skin") !== -1 || name.indexOf("night-skin") !== -1 || name.indexOf("day-river") !== -1 || name.indexOf("night-river") !== -1 || name.indexOf("day-river") !== -1 || name.indexOf("night-river") !== -1 || name.indexOf("day-rock") !== -1 || name.indexOf("night-rock") !== -1 || name.indexOf("day-flower") !== -1 || name.indexOf("night-flower") !== -1 || name.indexOf("day-leaf") !== -1 || name.indexOf("night-leaf") !== -1 || name.indexOf("day-herb") !== -1 || name.indexOf("night-herb") !== -1 || name.indexOf("day-shell") !== -1 || name.indexOf("night-shell") !== -1 || name.indexOf("day-hand-skin") !== -1 || name.indexOf("night-hand-skin") !== -1 || name.indexOf("bignight") !== -1 || name.indexOf("bigday") !== -1 || name.indexOf("bigzday") !== -1 || name.indexOf("bigznight") !== -1 || name.indexOf("tutorial-box") !== -1 || name.indexOf("-leaderboard-") !== -1 || name.indexOf("-lead-") !== -1 || name.indexOf("day-lava-") !== -1 || name.indexOf("night-lava-") !== -1 || name.indexOf("-click.png") !== -1 || name.indexOf("-in.png") !== -1 || name.indexOf("-fog") !== -1 || name.indexOf("-lava") !== -1 || name.indexOf("pebblecompo") !== -1 || name.indexOf("avatar-player") !== -1 ) return 0; return 1; } var number_img_to_load = Object.keys(IMAGES).length; for (var img in IMAGES) { if (need_to_load_this_image(IMAGES[img]) === 0) number_img_to_load--; } var my_loader_fun = function () { if (this.isLoaded !== 0) return this.isLoaded; this.isLoaded = 2; this.src = this._src; return 0; }; var my_onload_fun = function (a) { this.isLoaded = 1; }; var already_had_server_info = 0; var receive_server_info = function () { /* Call quit effect */ if (already_had_server_info === 1) return; already_had_server_info = 1; var privateServerName = Utils.getURLData("server"); if (privateServerName !== null) { client.privateServer = 1; client.server_list = [{ nu: 0, m: 100, i: "server" + privateServerName + ".starver.io", p: 443, a: "Private Server " + privateServerName, ssl: true }]; } client.update_server_list(); window.setTimeout(after_loading_stuff, 100); }; var wait_font = function () { let request_server_info = async () => { await client.fetch_server_list(); receive_server_info(); }; if (!window.document.fonts || !window.document.fonts.check) window.setTimeout(request_server_info, 1000); else if (window.document.fonts.check("1em Baloo Paaji")) window.setTimeout(request_server_info, 100); else window.setTimeout(wait_font, 100); }; var my_onerror_fun = function () { var _src = this.src; var _wait = need_to_load_this_image(_src) === 0 ? 10000 : 2000; window.setTimeout(function () { for (var i in DUMP_IMAGES) { if (_src.indexOf(DUMP_IMAGES[i]) !== -1) { IMAGES[i] = new Image(); IMAGES[i].onload = my_onload_fun; IMAGES[i].onerror = my_onerror_fun; IMAGES[i].src = _src; break; } } }, _wait); }; /* Load sprite and all stuff */ function load_images(priority) { for (var i in IMAGES) { var src = "img/" + IMAGES[i] + ".png"; // Skip already loaded image if (typeof src !== "string") continue; // Skip image that does not match the priority if (need_to_load_this_image(src) !== priority) continue; IMAGES[i] = new Image(); IMAGES[i].isLoaded = 0; IMAGES[i].onload = my_onload_fun; IMAGES[i].onerror = my_onerror_fun; IMAGES[i].tryLoad = my_loader_fun; if (window["location"]["protocol"] !== "https:") IMAGES[i]._src = src; else IMAGES[i]._src = window["location"].href + src; } } // Firstly load all image with high priority load_images(1); // Then load images with low priority load_images(0); // Try to force loading ? create_text(1, "l", 20, "#000000"); wait_font(); window.bas = client.server_list // generate the image query selector _load_images(); /* Update position of object, usefull for trigger */ this.update = function () { this.logo.translate.x = (canw - 500) / 2; this.logo.translate.y = (canh - 150) / 2; /* Quit effect */ var move_effect = 2500 / (quit_effect_max_step - quit_effect_step + 1) - 24; // I substract 48 for avoid move_effect when no using -> when quit_effect_step == 0 this.logo.translate.y -= move_effect; this.logo.update(); }; this.logo.update(); this.draw = function () { /* Draw fake world */ draw_fake_world(); /* Update position */ this.update(); }; } } document.addEventListener class UI { constructor(can, ctx) { this.can = can; this.ctx = ctx; /* Edge does not provide image for cursor feature */ if (window.navigator.userAgent.indexOf("Edge") > -1) { this.cursor0 = "default"; this.cursor1 = "pointer"; } else { this.cursor0 = "url('img/cursor0.png'), default"; this.cursor1 = "url('img/cursor1.png'), pointer"; } /* WATCH OUT, I'M NOT SURE ABOUT THIS TRICK, IT MAY BE A SOURCE OF BUG * * That seem work for use this object in a event listener */ var _this = this; /* Waiting the connection */ this.waiting = false; /* In UI or outside */ this.in_this_view = 0; /* Current mode score selected */ this.current_mode_score = -1; /* Loading effect */ this.loading = { translate: { x: 0, y: 0 }, angle: 0, img: sprite[SPRITE.GEAR2], draw: function () { this.angle += delta * 2; ctx.save(); ctx.translate(this.translate.x + this.img.width / 2, this.translate.y + this.img.height / 2); ctx.rotate(this.angle); ctxDrawImage(ctx, this.img, -this.img.width / 2, -this.img.height / 2); ctx.restore(); } }; this.bread = 0; this.previous_bread = -1; this.bread_img = undefined; this.new_nickname = ""; this.previous_new_nickname = ""; this.new_nickname_img = undefined; this.lvl = 0; this.previous_lvl = -1; this.lvl_img = undefined; this.xp = 0; this.xp_dest = 0; this.firstName = 0; this.kill = 0; this.death = 0; this.time = 0; this.score = 0; this.scoreTotal = 0; this.bestKill = 0; this.bestTime = 0; this.bestScore = 0; this.seasons = []; this.kit = -1; this.previous_kit_hour = -1; this.previous_kit_min = -1; this.kit_img_min = undefined; this.kit_img_hour = undefined; this.privateServerTime = -1; this.previous_privateServerTime_day = -1; this.previous_privateServerTime_hour = -1; this.previous_privateServerTime_min = -1; this.privateServerTime_img_min = undefined; this.privateServerTime_img_hour = undefined; this.privateServerTime_img_day = undefined; this.cosmetic_name = undefined; this.cosmetic_author = undefined; this.leaderboard_range = undefined; this.leaderboard_mode = undefined; this.leaderboard_sorted = undefined; this.leaderboard_season = 0; this.profile_season = 0; this.breath = 0; function CosmeticSelector(___type, first, ___setter, firstId, unlock) { var __this = this; var last = first + 9; var cursor = 0; var currentId = firstId; // Init first button for (var i = first; i < last; i++) { _this.buttons[i].info.callback = onClickCosmetic; _this.buttons[i].info.cosmeticType = ___type; } function loadText() { var info = ___type[currentId]; ui.cosmetic_name = gui_render_text(info.name, "'Baloo Paaji', sans-serif", "#EFE4B4", 30, 350, undefined, 10, 8); if (info.level !== undefined) ui.cosmetic_author = gui_render_text("Level " + info.level, "'Baloo Paaji', sans-serif", "#EFE4B4", 30, 250, undefined, 10, 8); else ui.cosmetic_author = gui_render_text("by " + info.author, "'Baloo Paaji', sans-serif", "#EFE4B4", 30, 250, undefined, 10, 8); } function onClickCosmetic() { if (currentId === this.cosmeticId || this.cosmeticId === -1) return; // Display locked info box if (this.unlocked > 0) { if (first === FIRST_BUTTON_SKIN) update_subview(__LOCKED_SKIN__, __HIDE__, "none"); else update_subview(__LOCKED_ACC__, __HIDE__, "none"); } else { if (first === FIRST_BUTTON_SKIN) update_subview(__LOCKED_SKIN__, __DISPLAY__, "inline-block"); else update_subview(__LOCKED_ACC__, __DISPLAY__, "inline-block"); } currentId = this.cosmeticId; ___setter(this.cosmeticId); loadText(); } function moveNext() { if (cursor * 3 + 9 < ___type.length) cursor++; __this.initSelector(); } function movePrevious() { if (cursor > 0) cursor--; __this.initSelector(); } function initSelector() { for (var i = first, j = cursor * 3; i < last && j < ___type.length; i++, j++) { if (___type[j].rarity === RARITY.SPECIAL && unlock[j] === 0) { _this.buttons[i].info.cosmeticId = -1; _this.buttons[i].info.active = __HIDE__; continue; } _this.buttons[i].info.cosmeticId = j; for (var k = 0; k < 3; k++) { _this.buttons[i].info.img[k] = RARITY_BUTTON[___type[j].rarity][k]; _this.buttons[i].info.active = __DISPLAY__; _this.buttons[i].info.unlocked = unlock[j]; } } for (; i < last; i++) { _this.buttons[i].info.cosmeticId = -1; _this.buttons[i].info.active = __HIDE__; } loadText(); } this.initSelector = initSelector; _this.buttons[last].info.callback = movePrevious; _this.buttons[last + 1].info.callback = moveNext; } /* Open window of settings */ this.settings = false; this.quality = cookiesManager.get("starve_quality") ? cookiesManager.get("starve_quality") : "high"; if (this.quality === "high") { window.document.getElementById("high_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("low_ing").style.backgroundColor = "#3A2A0D"; this.quality = 1; } else { window.document.getElementById("low_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("high_ing").style.backgroundColor = "#3A2A0D"; this.quality = 0; } this.high_quality = function () { window.document.getElementById("high_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("low_ing").style.backgroundColor = "#3A2A0D"; cookiesManager.set("starve_quality", "high", 30); window.document.getElementById("input_ratio").value = 1; game.change_ratio(); ui.quality = 1; }; this.low_quality = function () { window.document.getElementById("high_ing").style.backgroundColor = "#3A2A0D"; window.document.getElementById("low_ing").style.backgroundColor = "#B56D18"; cookiesManager.set("starve_quality", "low", 30); window.document.getElementById("input_ratio").value = 0.5 / (devicePixelRatio / backingStoreRatio); game.change_ratio(); ui.quality = 0; }; if (cookiesManager.get("starve_mapping") === undefined && lang === "FR") { keyboard.set_azerty(); this.mapping = "azerty"; } else this.mapping = cookiesManager.get("starve_mapping") ? cookiesManager.get("starve_mapping") : "qwerty"; if (this.mapping == "azerty") { keyboard.set_azerty(); window.document.getElementById("azerty_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("qwerty_ing").style.backgroundColor = "#3A2A0D"; } else { window.document.getElementById("qwerty_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("azerty_ing").style.backgroundColor = "#3A2A0D"; } this.set_azerty = function () { keyboard.set_azerty(); window.document.getElementById("azerty_ing").style.backgroundColor = "#B56D18"; window.document.getElementById("qwerty_ing").style.backgroundColor = "#3A2A0D"; cookiesManager.set("starve_mapping", "azerty", 30); }; this.set_qwerty = function () { keyboard.set_qwerty(); window.document.getElementById("azerty_ing").style.backgroundColor = "#3A2A0D"; window.document.getElementById("qwerty_ing").style.backgroundColor = "#B56D18"; cookiesManager.set("starve_mapping", "qwerty", 30); }; function init_skin() { var ct = window.Number(cookiesManager.get("starve_crate")); var dd = window.Number(cookiesManager.get("starve_dead")); var bk = window.Number(cookiesManager.get("starve_book")); var bg = window.Number(cookiesManager.get("starve_bag")); var sk = window.Number(cookiesManager.get("starve_skin")); var ac = window.Number(cookiesManager.get("starve_accessory")); _this.skin = sk ? sk : 0; _this.book = bk ? bk : 0; _this.crate = ct ? ct : 1; _this.accessory = ac ? ac : 0; _this.bag = bg ? bg : 0; _this.dead = dd ? dd : 0; } init_skin(); this.unlock = {}; this.unlock.skin = []; this.unlock.bag = []; this.unlock.book = []; this.unlock.crate = []; this.unlock.dead = []; this.unlock.accessory = []; this.day_mode = 0; /* Unlock cosmetics */ function unlock_cosmetics() { var cosmetic = COSMETICS.SKIN; for (var i = 0; i < cosmetic.length; i++) { if (cosmetic[i].rarity === RARITY.FREE) _this.unlock.skin[i] = 1; else _this.unlock.skin[i] = 0;; } var cosmetic = COSMETICS.ACCESSORY; for (var i = 0; i < cosmetic.length; i++) { if (cosmetic[i].rarity === RARITY.FREE) _this.unlock.accessory[i] = 1; else _this.unlock.accessory[i] = 0; } var cosmetic = COSMETICS.BAG; for (var i = 0; i < cosmetic.length; i++) { if (cosmetic[i].rarity === RARITY.FREE) _this.unlock.bag[i] = 1; else _this.unlock.bag[i] = 0; } var cosmetic = COSMETICS.BOOK; for (var i = 0; i < cosmetic.length; i++) { if (cosmetic[i].rarity === RARITY.FREE) _this.unlock.book[i] = 1; else _this.unlock.book[i] = 0; } var cosmetic = COSMETICS.CRATE; for (var i = 0; i < cosmetic.length; i++) { if (cosmetic[i].rarity === RARITY.FREE) { _this.unlock.crate[i] = 1; _this.unlock.dead[i] = 1; } else { _this.unlock.crate[i] = 0; _this.unlock.dead[i] = 0; } } } this.unlock_cosmetics = unlock_cosmetics; unlock_cosmetics(); /* Appear effect, all content appear from the bottom */ var appear_effect_step = 0; var appear_effect_max_step = 60; var appear_effect = function () { _this.update(); appear_effect_step++; if (appear_effect_step == appear_effect_max_step) { _this.add_event_listener(); _this.in_this_view = true; _this.update(); return; } window.setTimeout(appear_effect, CONFIG.frameTimeout); }; /* Quit UI with nicke effect */ this.quit = function (fun) { /* Will be run after quit */ fun_after_quit = fun; /* Clean menu trigger */ _this.remove_event_listener(); _this.in_this_view = 0; /* Make nice quit effect */ quit_effect_step = -1; quit_effect(); }; /* Quit effect, all content escape from the top */ var fun_after_quit; var quit_effect_step = -1; var quit_effect_max_step = 60; var quit_effect = function () { _this.update(); quit_effect_step++; if (quit_effect_step == quit_effect_max_step) { cookiesManager.set("starve_nickname", _this.nickname.input.value, 30); _this.nickname.style.display = "none"; _this.server_list.style.display = "none"; _this.stop(); fun_after_quit(); return; } window.setTimeout(quit_effect, CONFIG.frameTimeout); }; /* Check if user interface is running */ this.is_run = false; this.stop = function () { this.is_run = false; }; /* Run the user interface, make effect and add event listener */ this.run = function () { /* Reset ground color */ window.document.getElementById("game_body").style.backgroundColor = SPRITE.GROUND[fake_world.time]; /* Reset ui css interface */ _this.nickname.style.display = "inline-block"; _this.server_list.style.display = "inline-block"; _this.waiting = false; _this.is_run = true; quit_effect_step = -1; appear_effect_step = 0; appear_effect(); }; /** * Update UIComponent position * @param {UIComponent} component * @param {number} effect */ this.update_component = function (component, effect) { effect = effect < 0 ? -effect : effect; // Update component position if ((component.position & __MIDDLE_X__) === __MIDDLE_X__) { if ((component.position & __LEFT__) === __LEFT__) component.translate.x = canw2 + component.translate._x - effect; else if ((component.position & __RIGHT__) === __RIGHT__) component.translate.x = canw2 + component.translate._x + effect; else component.translate.x = canw2 + component.translate._x; } else if ((component.position & __LEFT__) === __LEFT__) component.translate.x = component.translate._x - effect; else if ((component.position & __RIGHT__) === __RIGHT__) component.translate.x = canw - component.translate._x + effect; else component.translate.x = component.translate._x; if ((component.position & __MIDDLE_Y__) === __MIDDLE_Y__) { if ((component.position & __TOP__) === __TOP__) component.translate.y = canh2 + component.translate._y - effect; else if ((component.position & __BOTTOM__) === __BOTTOM__) component.translate.y = canh2 + component.translate._y + effect; else component.translate.y = canh2 + component.translate._y; } else if ((component.position & __TOP__) === __TOP__) component.translate.y = component.translate._y - effect; else if ((component.position & __BOTTOM__) === __BOTTOM__) component.translate.y = canh + component.translate._y + effect; else component.translate.y = component.translate._y; // Apply position for CSS component if (component.style !== undefined) { component.style.left = window.Math.floor(component.translate.x) + "px"; component.style.top = window.Math.floor(component.translate.y) + "px"; } }; /* Update position of object, usefull for trigger */ this.update = function () { // Compute transition effect var effect = 0; if (appear_effect_step != appear_effect_max_step || quit_effect_step != -1) { /* Appear effect */ if (appear_effect_step != appear_effect_max_step) // I substract 50 because at end, move effect do not down at 0 var effect = 1500 / (appear_effect_step + 1) - 25; /* Quit effect */ if (quit_effect_step != -1) // I substract 48 for center correctly -> when quit_effect_step == 0 var effect = -(1750 / (quit_effect_max_step - quit_effect_step + 1) - 24); } // Update background image component for (var i = 0; i < this.bkgd.length; i++) this.update_component(this.bkgd[i], effect); // Update buttons for (var i = 0; i < this.buttons.length; i++) this.update_component(this.buttons[i].info, effect); // Update CSS element for (var i = 0; i < this.css.length; i++) this.update_component(this.css[i], effect); this.loading.translate.x = (canw - this.loading.img.width) / 2; this.loading.translate.y = 0; if (appear_effect_step != appear_effect_max_step || quit_effect_step != -1) { var move_effect = 0; /* Appear effect */ if (appear_effect_step != appear_effect_max_step) { var move_effect = 1500 / (appear_effect_step + 1) - 24; // I substract 50 because at end, move effect do not down at 0 } /* Quit effect */ if (quit_effect_step != -1) { var move_effect = -(1750 / (quit_effect_max_step - quit_effect_step + 1) - 24); // I substract 48 for center correctly -> when quit_effect_step == 0 } this.loading.translate.y -= move_effect > 0 ? move_effect : -move_effect; } }; this.create_spin = function (info) { var spin = window.document.createElement("canvas"); var spinCtx = spin.getContext("2d"); spin.width = 342; spin.height = 342; var start = -window.Math.PI / 2; for (var i = 0; i < info.length; i++) { var col = info[i][0]; var deg = (info[i][1] * window.Math.PI) / 180; spinCtx.beginPath(); spinCtx.arc(171, 171, 170, start, start + deg, false); spinCtx.lineTo(171, 171); spinCtx.fillStyle = col; spinCtx.fill(); start += deg; } return spin; }; this.generate_new_nickname = function () { // Draw text info this.new_nickname = window.document.getElementById("account_nickname_input").value; if (this.new_nickname !== this.previous_new_nickname) { this.previous_new_nickname = this.new_nickname; this.new_nickname_img = gui_render_text(this.new_nickname, "'Baloo Paaji', sans-serif", "#EFE4B4", 45, 550); } }; this.draw = function () { /* Draw fake world */ draw_fake_world(); // Place experience gauge relatively to the top left interface ui.xp = Utils.lerp(ui.xp, ui.xp_dest, 0.03); this.bkgd[LEVEL_GAUGE].translate.x = this.bkgd[0].translate.x + -72 + 165 * ui.xp; this.bkgd[LEVEL_GAUGE].translate._x = this.bkgd[LEVEL_GAUGE].translate.x; this.bkgd[LEVEL_GAUGE].translate.y = this.bkgd[0].translate.y + 30; this.bkgd[LEVEL_GAUGE].translate._y = this.bkgd[LEVEL_GAUGE].translate.y; // Render all background images for (var i = 2; i < this.bkgd.length; i++) { if (this.bkgd[i].active === __DISPLAY__) this.bkgd[i].draw(ctx); } // Render kit remains time var remains = this.kit - Date.now(); if (remains > 0) { var min = window.Math.floor(remains / 60000); var hour = window.Math.floor(min / 60); min %= 60; if (min !== this.previous_kit_min) { this.previous_kit_min = min; min = min < 10 ? "0" + min : "" + min; _this.kit_img_min = gui_render_text(min, "'Baloo Paaji', sans-serif", "#EFE4B4", 80, 200); } if (hour !== this.previous_kit_hour) { this.previous_kit_hour = hour; hour = hour < 10 ? "0" + hour : "" + hour; _this.kit_img_hour = gui_render_text(hour, "'Baloo Paaji', sans-serif", "#EFE4B4", 80, 200); } var remain_box = this.bkgd[BAG_REMAIN_BOX]; remain_box.draw(ctx); var img = this.kit_img_hour; ctxDrawImage(ctx, img, remain_box.translate.x - img.width / 4 + 182, remain_box.translate.y - img.height / 4 + 40, img.width / 2, img.height / 2); var img = this.kit_img_min; ctxDrawImage(ctx, img, remain_box.translate.x - img.width / 4 + 251, remain_box.translate.y - img.height / 4 + 40, img.width / 2, img.height / 2); } // Render privateServerTime remains time var remains = this.privateServerTime - Date.now(); if (remains > 0) { var min = window.Math.floor(remains / 60000); var hour = window.Math.floor(min / 60); var day = window.Math.floor(hour / 24); min %= 60; hour %= 24; if (min !== this.previous_privateServerTime_min) { this.previous_privateServerTime_min = min; min = min < 10 ? "0" + min : "" + min; _this.privateServerTime_img_min = gui_render_text(min, "'Baloo Paaji', sans-serif", "#EFE4B4", 80, 200); } if (hour !== this.previous_privateServerTime_hour) { this.previous_privateServerTime_hour = hour; hour = hour < 10 ? "0" + hour : "" + hour; _this.privateServerTime_img_hour = gui_render_text(hour, "'Baloo Paaji', sans-serif", "#EFE4B4", 80, 200); } if (day !== this.previous_privateServerTime_day) { this.previous_privateServerTime_day = day; day = day < 10 ? "0" + day : "" + day; _this.privateServerTime_img_day = gui_render_text(day, "'Baloo Paaji', sans-serif", "#EFE4B4", 80, 200); } var remain_box = this.bkgd[SERVER_REMAIN_BOX]; remain_box.draw(ctx); var img = this.privateServerTime_img_day; ctxDrawImage(ctx, img, remain_box.translate.x - img.width / 4 + 113, remain_box.translate.y - img.height / 4 + 40, img.width / 2, img.height / 2); var img = this.privateServerTime_img_hour; ctxDrawImage(ctx, img, remain_box.translate.x - img.width / 4 + 182, remain_box.translate.y - img.height / 4 + 40, img.width / 2, img.height / 2); var img = this.privateServerTime_img_min; ctxDrawImage(ctx, img, remain_box.translate.x - img.width / 4 + 251, remain_box.translate.y - img.height / 4 + 40, img.width / 2, img.height / 2); } // Select current view for buttons if ((this.current_view & __GAME__) === __GAME__) this.buttons[GAME_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __LEADERBOARD__) === __LEADERBOARD__) this.buttons[LEADERBOARD_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __COSMETICS__) === __COSMETICS__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __PROFILE__) === __PROFILE__) this.buttons[PROFILE_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __LOGIN__) === __LOGIN__) this.buttons[LOGIN_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SHOP__) === __SHOP__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_1__) === __SPIN_1__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_2__) === __SPIN_2__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_3__) === __SPIN_3__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_4__) === __SPIN_4__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_5__) === __SPIN_5__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SPIN_6__) === __SPIN_6__) this.buttons[SHOP_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SKIN__) === __SKIN__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __BAG__) === __BAG__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __CRATE__) === __CRATE__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __BOOK__) === __BOOK__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __ACCESSORY__) === __ACCESSORY__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __LOOT__) === __LOOT__) this.buttons[COSMETICS_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SERVER_DURATION__) === __SERVER_DURATION__) this.buttons[SERVER_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SERVER_ACCESS__) === __SERVER_ACCESS__) this.buttons[SERVER_BUTTON].info.state = BUTTON_CLICK; else if ((this.current_view & __SEASON5__) === __SEASON5__) this.buttons[PROFILE_BUTTON].info.state = BUTTON_CLICK; // Selected button effect for the leaderboard view if ((this.current_view & __LEADERBOARD__) === __LEADERBOARD__) { if (this.leaderboard_mode === this.LEADERBOARD_TOTAL) { this.leaderboard_range = this.LEADERBOARD_ALL; this.buttons[this.LEADERBOARD_ALL].info.active = __HIDE__; this.buttons[this.LEADERBOARD_WEEK].info.active = __HIDE__; this.buttons[this.LEADERBOARD_TODAY].info.active = __HIDE__; } else { this.buttons[this.LEADERBOARD_ALL].info.active = __DISPLAY__; this.buttons[this.LEADERBOARD_WEEK].info.active = __DISPLAY__; this.buttons[this.LEADERBOARD_TODAY].info.active = __DISPLAY__; } if (this.leaderboard_mode === this.LEADERBOARD_TOTAL) this.buttons[this.LEADERBOARD_TOTAL].info.state = BUTTON_CLICK // else if (this.leaderboard_mode === this.LEADERBOARD_VAMPIRE) this.buttons[this.LEADERBOARD_VAMPIRE].info.state = BUTTON_CLICK; else if (this.leaderboard_mode === this.LEADERBOARD_NORMAL) this.buttons[this.LEADERBOARD_NORMAL].info.state = BUTTON_CLICK; // else if (this.leaderboard_mode === this.LEADERBOARD_ZOMBIE) this.buttons[this.LEADERBOARD_ZOMBIE].info.state = BUTTON_CLICK; // else if (this.leaderboard_mode === this.LEADERBOARD_FOREST) this.buttons[this.LEADERBOARD_FOREST].info.state = BUTTON_CLICK; if (this.leaderboard_range === this.LEADERBOARD_ALL) this.buttons[this.LEADERBOARD_ALL].info.state = BUTTON_CLICK; else if (this.leaderboard_range === this.LEADERBOARD_WEEK) this.buttons[this.LEADERBOARD_WEEK].info.state = BUTTON_CLICK; else if (this.leaderboard_range === this.LEADERBOARD_TODAY) this.buttons[this.LEADERBOARD_TODAY].info.state = BUTTON_CLICK; if (this.leaderboard_sorted === this.LEADERBOARD_KILL) this.buttons[this.LEADERBOARD_KILL].info.state = BUTTON_CLICK; else if (this.leaderboard_sorted === this.LEADERBOARD_SCORE) this.buttons[this.LEADERBOARD_SCORE].info.state = BUTTON_CLICK; else if (this.leaderboard_sorted === this.LEADERBOARD_TIME) this.buttons[this.LEADERBOARD_TIME].info.state = BUTTON_CLICK; if (this.leaderboard_season === 0) this.buttons[this.LEADERBOARD_SEASON1].info.state = BUTTON_CLICK; } // Selected button effect for the profile view if ((this.current_view & __PROFILE__) === __PROFILE__) { // if (this.current_mode_score === -1) this.buttons[SCORE_MODE_TOTAL].info.state = BUTTON_CLICK; // else if (this.current_mode_score === WORLD.MODE_PVP) this.buttons[SCORE_MODE_NORMAL].info.state = BUTTON_CLICK; // else if (this.current_mode_score === WORLD.MODE_ZOMBIES) this.buttons[SCORE_MODE_ZOMBIE].info.state = BUTTON_CLICK; // else if (this.current_mode_score === WORLD.MODE_VAMPIRES) this.buttons[SCORE_MODE_VAMPIRE].info.state = BUTTON_CLICK; // else if (this.current_mode_score === WORLD.MODE_LEGACY) this.buttons[SCORE_MODE_FOREST].info.state = BUTTON_CLICK; if (this.profile_season === 0) this.buttons[SCORE_MODE_SEASON1].info.state = BUTTON_CLICK; } // Update hint effect if ((this.current_view & __GAME__) === __GAME__ && client.privateServer === 0) { if (this.buttons[NORMAL_MODE].in_button(mouse.pos)) this.buttons[NORMAL_MODE].hint = window.Math.min(1, this.buttons[NORMAL_MODE].hint + delta * 1.5); else this.buttons[NORMAL_MODE].hint = window.Math.max(0, this.buttons[NORMAL_MODE].hint - delta * 1.5); // if (this.buttons[FOREST_MODE].in_button(mouse.pos)) this.buttons[FOREST_MODE].hint = window.Math.min(1, this.buttons[FOREST_MODE].hint + delta * 1.5); // else this.buttons[FOREST_MODE].hint = window.Math.max(0, this.buttons[FOREST_MODE].hint - delta * 1.5); if (this.buttons[MODE_COMMUNITY].in_button(mouse.pos)) this.buttons[MODE_COMMUNITY].hint = window.Math.min(1, this.buttons[MODE_COMMUNITY].hint + delta * 1.5); else this.buttons[MODE_COMMUNITY].hint = window.Math.max(0, this.buttons[MODE_COMMUNITY].hint - delta * 1.5); if (this.buttons[MODE_EXPERIMENTAL].in_button(mouse.pos)) this.buttons[MODE_EXPERIMENTAL].hint = window.Math.min(1, this.buttons[MODE_EXPERIMENTAL].hint + delta * 1.5); else this.buttons[MODE_EXPERIMENTAL].hint = window.Math.max(0, this.buttons[MODE_EXPERIMENTAL].hint - delta * 1.5); // if (this.buttons[ZOMBIE_MODE].in_button(mouse.pos)) this.buttons[ZOMBIE_MODE].hint = window.Math.min(1, this.buttons[ZOMBIE_MODE].hint + delta * 1.5); // else this.buttons[ZOMBIE_MODE].hint = window.Math.max(0, this.buttons[ZOMBIE_MODE].hint - delta * 1.5); // if (this.buttons[VAMPIRE_MODE].in_button(mouse.pos)) this.buttons[VAMPIRE_MODE].hint = window.Math.min(1, this.buttons[VAMPIRE_MODE].hint + delta * 1.5); // else this.buttons[VAMPIRE_MODE].hint = window.Math.max(0, this.buttons[VAMPIRE_MODE].hint - delta * 1.5); } // Render spin effect var _r = 1; if ((this.current_view & (__SPIN_1__ | __SPIN_2__ | __SPIN_3__ | __SPIN_4__ | __SPIN_5__ | __SPIN_6__)) > 1) { var img = IMAGES.ARROW_SPIN; ctx.save(); ctx.translate(canw2, SPIN_TOP + img.height / 4); if (this.spin === 1) { this.spin_effect += delta / 3; _r = this.spin_target - 100 / window.Math.pow(1 + this.spin_effect, 1 + this.spin_effect); ctx.rotate(_r); } ctxDrawImage(ctx, img, -img.width / 4, -img.height / 4, img.width / 2, img.height / 2); ctx.restore(); } // Select current mode for buttons if (client.privateServer === 0) { if (client.current_mode === WORLD.MODE_PVP) this.buttons[NORMAL_MODE].info.state = BUTTON_CLICK; // else if (client.current_mode === WORLD.MODE_LEGACY) this.buttons[FOREST_MODE].info.state = BUTTON_CLICK; // else if (client.current_mode === WORLD.MODE_ZOMBIES) this.buttons[ZOMBIE_MODE].info.state = BUTTON_CLICK; // else if (client.current_mode === WORLD.MODE_VAMPIRES) this.buttons[VAMPIRE_MODE].info.state = BUTTON_CLICK; else if (client.current_mode === WORLD.MODE_COMMUNITY) this.buttons[MODE_COMMUNITY].info.state = BUTTON_CLICK; else if (client.current_mode === WORLD.MODE_EXPERIMENTAL) this.buttons[MODE_EXPERIMENTAL].info.state = BUTTON_CLICK; } for (var i = 1; i < this.buttons.length; i++) { if (this.buttons[i].info.active === __DISPLAY__) this.buttons[i].draw(ctx); } // Render top left UI this.bkgd[0].draw(ctx); // Render new nickname if ((this.current_view & (__CHANGE_NICKNAME0__ | __CHANGE_NICKNAME1__)) > 0) { var img = this.new_nickname_img; ctxDrawImage(ctx, img, canw2 - img.width / 4, 138, img.width / 2, img.height / 2); } // Render level image var lvl = window.Math.max(1, window.Math.min(18, window.Math.floor((ui.lvl + 3) / 2))); this.bkgd[lvl].active = __DISPLAY__; this.bkgd[lvl].draw(ctx); this.bkgd[lvl].active = __HIDE__; this.buttons[0].draw(ctx); // Display cosmetics current selection if ((this.current_view & (__COSMETICS__ | __BAG__ | __BOOK__ | __SKIN__ | __ACCESSORY__)) > 1) { var _x = (this.current_view & (__BAG__ | __BOOK__ | __SKIN__ | __ACCESSORY__)) > 1 ? -190 : 0; var img = sprite[ItemType.BAG][this.bag][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 + _x, 183, img.width / 2, img.height / 2); this.breath = (this.breath + delta * 1000) % 2000; var v = 4.5 * (this.breath < 1000) ? this.breath / 1000 : (2000 - this.breath) / 1000; var img = sprite[ItemType.BOOK][this.book][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 - 62 + v + _x, 240, img.width / 2, img.height / 2); var img = sprite[ItemType.HAND][this.skin][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 - 54 + v + _x, 272, img.width / 2, img.height / 2); ctxDrawImage(ctx, img, canw2 - img.width / 4 + 54 - v + _x, 272, img.width / 2, img.height / 2); var img = sprite[SPRITE.BODY][this.skin][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 + _x, 222, img.width / 2, img.height / 2); var img = sprite[SPRITE.ACCESSORY][this.accessory][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 + _x, 222, img.width / 2, img.height / 2); } // Render crate if ((this.current_view & __COSMETICS__) === __COSMETICS__) { var img = sprite[SPRITE.CRATE][this.crate][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 - 61, 406 - img.height / 4, img.width / 2, img.height / 2); var img = sprite[SPRITE.CRATE][this.dead][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 + 53, 406 - img.height / 4, img.width / 2, img.height / 2); } if ((this.current_view & __CRATE__) === __CRATE__) { var img = sprite[SPRITE.CRATE][this.dead][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 - 200, 268 - img.height / 4, img.width / 2, img.height / 2); } if ((this.current_view & __LOOT__) === __LOOT__) { var img = sprite[SPRITE.CRATE][this.crate][this.day_mode]; ctxDrawImage(ctx, img, canw2 - img.width / 4 - 200, 268 - img.height / 4, img.width / 2, img.height / 2); } // Render cosmetics selector if ((this.current_view & (__BAG__ | __BOOK__ | __SKIN__ | __ACCESSORY__ | __CRATE__ | __LOOT__)) > 1) { for (var i = 1; i < this.buttons.length; i++) { if ((this.buttons[i].view & this.current_view) === 0) continue; var button = this.buttons[i].info; if (button.cosmeticId >= 0) { var img = button.cosmeticType[button.cosmeticId].day; ctxDrawImage(ctx, img, button.translate.x - img.width / 8 + 44.5, button.translate.y - img.height / 8 + 45.5, img.width / 4, img.height / 4); if (button.unlocked !== 1) { var img = IMAGES.RED_LOCKED; ctxDrawImage(ctx, img, button.translate.x - img.width / 4 + 44.5, button.translate.y - img.height / 4 + 44.5, img.width / 2, img.height / 2); } } } var img = this.cosmetic_name; ctxDrawImage(ctx, img, canw2 - 312, 375, img.width / 2, img.height / 2); var img = this.cosmetic_author; ctxDrawImage(ctx, img, canw2 - 312, 395, img.width / 2, img.height / 2); } // Draw text info if (this.bread !== this.previous_bread) { this.previous_bread = this.bread; this.bread_img = gui_render_text("" + this.bread, "'Baloo Paaji', sans-serif", "#EFE4B4", 60, 250); } ctxDrawImage(ctx, this.bread_img, this.bkgd[0].translate.x + 350, 15, this.bread_img.w2, this.bread_img.h2); if (this.lvl !== this.previous_lvl) { this.previous_lvl = this.lvl; this.lvl_img = gui_render_text("LVL " + (this.lvl + 1), "'Baloo Paaji', sans-serif", "#EFE4B4", 50, 250, undefined, 30, 24, undefined, undefined, undefined, undefined, "#3F3019", 20); } ctxDrawImage(ctx, this.lvl_img, this.bkgd[0].translate.x + 94, 0, this.lvl_img.w2, this.lvl_img.h2); // Display hint effect if (client.privateServer === 0) { var hint = this.buttons[NORMAL_MODE].hint; if (hint > 0) { var img = IMAGES.NORMAL_MODE_HOVER; ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); } // var hint = this.buttons[FOREST_MODE].hint; // if (hint > 0) { // var img = IMAGES.FOREST_MODE_HOVER; // ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); // } var hint = this.buttons[MODE_COMMUNITY].hint; if (hint > 0) { var img = IMAGES.MODE_COMMUNITY_HOVER; ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); } var hint = this.buttons[MODE_EXPERIMENTAL].hint; if (hint > 0) { var img = IMAGES.MODE_EXPERIMENTAL_HOVER; ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); } // var hint = this.buttons[VAMPIRE_MODE].hint; // if (hint > 0) { // var img = IMAGES.VAMPIRE_MODE_HOVER; // ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); // } // var hint = this.buttons[ZOMBIE_MODE].hint; // if (hint > 0) { // var img = IMAGES.ZOMBIE_MODE_HOVER; // ctxDrawImage(ctx, img, canw2 - img.width / 4, -36 - (img.height * Utils.ease_in_out_quad(1 - hint)) / 2, img.width / 2, img.height / 2); // } } // Spin win effect if (this.spin === 1 && window.Math.abs(_r - this.spin_target) < 0.006) { ctx.globalAlpha = window.Math.min(1, this.spin_win_effect * 3); var img = IMAGES.SPIN_LIGHT; ctx.save(); ctx.translate(canw2, 260); this.spin_win_effect += delta; ctx.rotate(this.spin_win_effect); ctxDrawImage(ctx, img, -img.width / 2, -img.height / 2, img.width, img.height); ctx.restore(); var v = 1.05 + 0.05 * window.Math.sin(this.spin_win_effect * 5); if (this.spin_type === 0) { var img = COSMETICS.SKIN[this.spin_win].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 260 - h / 2, w, h); } else if (this.spin_type === 1) { var img = COSMETICS.SKIN[0].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 260 - h / 2, w, h); var img = COSMETICS.ACCESSORY[this.spin_win].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 260 - h / 2, w, h); } else if (this.spin_type === 2) { var img = COSMETICS.BAG[this.spin_win].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 180 - h / 2, w, h); var img = COSMETICS.SKIN[0].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 260 - h / 2, w, h); } else if (this.spin_type === 3) { var img = COSMETICS.BOOK[this.spin_win].day; var w = v * img.width; var h = v * img.height; ctx.save(); ctx.translate(canw2, 260); ctx.rotate(window.Math.PI); ctxDrawImage(ctx, img, -w / 2, -h / 2, w, h); ctx.restore(); } else if (this.spin_type === 4) { var img = COSMETICS.CRATE[this.spin_win].day; var w = v * img.width; var h = v * img.height; ctxDrawImage(ctx, img, canw2 - w / 2, 260 - h / 2, w, h); } var img = this.spin_name; ctxDrawImage(ctx, img, canw2 - img.width / 4, 340, img.width / 2, img.height / 2); var img = this.spin_author; ctxDrawImage(ctx, img, canw2 - img.width / 4, 365, img.width / 2, img.height / 2); if (this.spin_win_effect > 6) { this.spin = 0; select_subview(__SHOP__); } ctx.globalAlpha = 1; } // Draw alert message user.alert.draw(); /* Loading */ if (_this.waiting) this.loading.draw(); }; var COUNTER = 0; var __GAME__ = window.Math.pow(2, COUNTER++); var __PROFILE__ = window.Math.pow(2, COUNTER++); this.__PROFILE__ = __PROFILE__; var __LOGIN__ = window.Math.pow(2, COUNTER++); var __COSMETICS__ = window.Math.pow(2, COUNTER++); var __SHOP__ = window.Math.pow(2, COUNTER++); var __LEADERBOARD__ = window.Math.pow(2, COUNTER++); var __BUY__ = window.Math.pow(2, COUNTER++); this.__BUY__ = __BUY__; var __LOCKED_SKIN__ = window.Math.pow(2, COUNTER++); var __LOCKED_ACC__ = window.Math.pow(2, COUNTER++); var __SPIN_1__ = window.Math.pow(2, COUNTER++); var __SPIN_2__ = window.Math.pow(2, COUNTER++); var __SPIN_3__ = window.Math.pow(2, COUNTER++); var __SPIN_4__ = window.Math.pow(2, COUNTER++); var __SPIN_5__ = window.Math.pow(2, COUNTER++); var __SPIN_6__ = window.Math.pow(2, COUNTER++); var __SKIN__ = window.Math.pow(2, COUNTER++); var __CRATE__ = window.Math.pow(2, COUNTER++); var __BAG__ = window.Math.pow(2, COUNTER++); var __BOOK__ = window.Math.pow(2, COUNTER++); var __ACCESSORY__ = window.Math.pow(2, COUNTER++); var __LOOT__ = window.Math.pow(2, COUNTER++); var __CHANGE_NICKNAME1__ = window.Math.pow(2, COUNTER++); var __CHANGE_NICKNAME0__ = window.Math.pow(2, COUNTER++); var __SERVER_DURATION__ = window.Math.pow(2, COUNTER++); this.__SERVER_DURATION__ = __SERVER_DURATION__; var __SERVER_ACCESS__ = window.Math.pow(2, COUNTER++); this.__SERVER_ACCESS__ = __SERVER_ACCESS__; var __SEASON5__ = window.Math.pow(2, COUNTER++); this.current_view = __GAME__; // Hide or display only one UI type function update_subview(view, mode, _css) { // Hide the previous view component for (var i = 0; i < _this.bkgd.length; i++) { if ((_this.bkgd[i].view & view) !== 0) _this.bkgd[i].active = mode; } for (var i = 0; i < _this.buttons.length; i++) { if ((_this.buttons[i].view & view) !== 0) _this.buttons[i].info.active = mode; } for (var i = 0; i < _this.css.length; i++) { if ((_this.css[i].view & view) !== 0) _this.css[i].style.display = _css; } } // Correct the selected skin function correct_selected_skin() { var ct = window.Number(cookiesManager.get("starve_crate")); var dd = window.Number(cookiesManager.get("starve_dead")); var bk = window.Number(cookiesManager.get("starve_book")); var bg = window.Number(cookiesManager.get("starve_bag")); var sk = window.Number(cookiesManager.get("starve_skin")); var ac = window.Number(cookiesManager.get("starve_accessory")); if (!(ui.unlock.skin[ui.skin] > 0)) ui.skin = !(ui.unlock.skin[sk] > 0) ? 0 : sk; if (!(ui.unlock.book[ui.book] > 0)) ui.book = !(ui.unlock.book[bk] > 0) ? 0 : bk; if (!(ui.unlock.dead[ui.dead] > 0)) ui.dead = !(ui.unlock.dead[dd] > 0) ? 0 : dd; if (!(ui.unlock.crate[ui.crate] > 0)) ui.crate = !(ui.unlock.crate[ct] > 0) ? 0 : ct; if (!(ui.unlock.accessory[ui.accessory] > 0)) ui.accessory = !(ui.unlock.accessory[ac] > 0) ? 0 : ac; if (!(ui.unlock.bag[ui.bag] > 0)) ui.bag = !(ui.unlock.bag[bg] > 0) ? 0 : bg; } // Move from a UI subview to another function select_subview(view) { // Was triggered outside of this view, we don't want that if (_this.in_this_view === false) return; // Always hide the popup update_subview(__LOCKED_SKIN__, __HIDE__, "none"); update_subview(__LOCKED_ACC__, __HIDE__, "none"); // Check the skin integrity correct_selected_skin(); // We don't need to change the current view for the same view if (view === _this.current_view || _this.spin >= 1) return; // Hide or display the ads relatively to the subview // Hide the previous view component update_subview(_this.current_view, __HIDE__, "none"); // Display the new view component _this.current_view = view; update_subview(_this.current_view, __DISPLAY__, "inline-block"); } this.select_subview = select_subview; function play_after() { /* Fix selected skin */ correct_selected_skin(); client.connect(); } this.play_game = function () { // Prevent multiple connexion if (_this.waiting === false) { /* Don't restore session (or even try) */ user.reconnect.enabled = false; /* User cannot control totally the interface */ _this.waiting = true; play_after(); } }; var __LEFT__ = 1; var __RIGHT__ = 2; var __TOP__ = 4; var __BOTTOM__ = 8; var __MIDDLE_X__ = 16; var __MIDDLE_Y__ = 32; var __HD__ = 1; var __NO_BREATH__ = 0; var __BREATH__ = 1; var __HIDE__ = 0; var __DISPLAY__ = 1; this.login = { id: window.document.getElementById("login_block"), style: window.document.getElementById("login_block").style, input: window.document.getElementById("login_input"), input_: window.document.getElementById("password_input"), up: window.document.getElementById("signup"), in: window.document.getElementById("login"), active: __DISPLAY__, position: __TOP__ | __MIDDLE_X__, view: __LOGIN__, translate: { x: 0, y: 0, _x: -200, _y: 100 } }; /* Nickname input */ if (window.innerWidth < 1300) { this.nickname = { id: window.document.getElementById("nickname_block"), style: window.document.getElementById("nickname_block").style, input: window.document.getElementById("nickname_input"), active: __DISPLAY__, position: __TOP__ | __LEFT__, view: __GAME__, translate: { x: 0, y: 0, _x: 200, _y: 184 } }; } else { this.nickname = { id: window.document.getElementById("nickname_block"), style: window.document.getElementById("nickname_block").style, input: window.document.getElementById("nickname_input"), active: __DISPLAY__, position: __TOP__ | __MIDDLE_X__, view: __GAME__, translate: { x: 0, y: 0, _x: -180, _y: 184 } }; } this.nickname.id.addEventListener("keyup", function (event) { event.preventDefault(); if (event.keyCode == 13 && !_this.waiting && !_this.settings) _this.play_game(); }); this.login.in.addEventListener("click", async () => { if (_this.login.input.value.length < 3) return client.new_alert("Login must have more than 2 characters", "#a60f1b"); if (_this.login.input_.value.length < 6) return client.new_alert("Password must have more than 5 characters", "#a60f1b"); if (_this.login.input.value.length > 16) return client.new_alert("Login must have less than 16 characters", "#a60f1b"); if (_this.login.input_.value.length > 16) return client.new_alert("Password must have less than 16 characters", "#a60f1b"); const response = await fetch("/login", { method: "POST", headers: { "Content-type": "application/json" }, body: window.JSON.stringify({ login: _this.login.input.value, password: _this.login.input_.value }) }); let body = await response.text(); if (body[0] !== "{") return client.new_alert(body, "#a60f1b"); select_subview(__GAME__); _this.login_restore_data(window.JSON.parse(body)); user.login = _this.login.input.value; user.password = _this.login.input_.value; client.new_alert("Log in account", "#27ba36"); if(remember_checkbox.checked) { cookiesManager.set("starve_login", user.login); cookiesManager.set("starve_password", user.password); } }); this.login.up.addEventListener("click", async() => { if(_this.login.input.value.length < 3) return client.new_alert("Login must have more than 2 characters", "#a60f1b"); if(_this.login.input_.value.length < 6) return client.new_alert("Password must have more than 5 characters", "#a60f1b"); if(_this.login.input.value.length > 16) return client.new_alert("Login must have less than 16 characters", "#a60f1b"); if(_this.login.input_.value.length > 16) return client.new_alert("Password must have less than 16 characters", "#a60f1b"); const response = await fetch("/register", { method: "POST", headers: { "Content-type": "application/json" }, body: window.JSON.stringify({login: _this.login.input.value, password: _this.login.input_.value}) }); let body = await response.text(); if(body[0] !== "{") return client.new_alert(body, "#a60f1b"); select_subview(__GAME__); _this.login_restore_data(window.JSON.parse(body)); user.login = _this.login.input.value; user.password = _this.login.input_.value; client.new_alert("Account successfully registered", "#27ba36"); }); this.nickname.input.value = cookiesManager.get("starve_nickname") ? cookiesManager.get("starve_nickname") : ""; this.account_nickname = { id: window.document.getElementById("account_nickname_block"), style: window.document.getElementById("account_nickname_block").style, input: window.document.getElementById("account_nickname_input"), active: __HIDE__, position: __TOP__ | __MIDDLE_X__, view: __PROFILE__, translate: { x: 0, y: 0, _x: -122, _y: 110 } }; /* Server list */ /* Nickname input */ if (window.innerWidth < 1300) this.server_list = { id: window.document.getElementById("servselect"), style: window.document.getElementById("servselect").style, active: __DISPLAY__, position: __TOP__ | __LEFT__, view: __GAME__, translate: { x: 0, y: 0, _x: 208, _y: 225 } }; else this.server_list = { id: window.document.getElementById("servselect"), style: window.document.getElementById("servselect").style, active: __DISPLAY__, position: __TOP__ | __MIDDLE_X__, view: __GAME__, translate: { x: 0, y: 0, _x: -180, _y: 225 } }; /* leaderboard */ this.leaderboard = { id: window.document.getElementById("leaderboard"), style: window.document.getElementById("leaderboard").style, active: __HIDE__, position: __TOP__ | __MIDDLE_X__, view: __LEADERBOARD__, translate: { x: 0, y: 0, _x: -294.5, _y: 190 } }; /* Profile Stats */ this.stats_box = { id: window.document.getElementById("stats_box"), style: window.document.getElementById("stats_box").style, active: __HIDE__, position: __TOP__ | __MIDDLE_X__, view: __PROFILE__, translate: { x: 0, y: 0, _x: 125, _y: 187 } }; /* Daily Quests */ /* this.daily_quest_box = { id : window.document.getElementById ("daily_quest_box"), style : window.document.getElementById ("daily_quest_box").style, active : __HIDE__, position : __TOP__ | __MIDDLE_X__, view : __PROFILE__, translate : { x : 0, y : 0, _x : -300, _y : 400 }, };*/ /* Server Address Input */ this.serverAddressBlock = { id: window.document.getElementById("serverAddressBlock"), style: window.document.getElementById("serverAddressBlock").style, input: window.document.getElementById("serverAddressInput"), active: __HIDE__, position: __TOP__ | __MIDDLE_X__, view: __SERVER_ACCESS__, translate: { x: 0, y: 0, _x: -220, _y: 350 } }; COUNTER = 0; this.css = []; this.css[COUNTER++] = this.nickname; this.css[COUNTER++] = this.login; this.css[COUNTER++] = this.server_list; this.css[COUNTER++] = this.leaderboard; this.css[COUNTER++] = this.account_nickname; this.css[COUNTER++] = this.stats_box; /*this.css[COUNTER++] = this.daily_quest_box;*/ this.css[COUNTER++] = this.serverAddressBlock; COUNTER = 0; this.bkgd = []; this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_RESUME, __DISPLAY__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL1, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL2, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL3, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL4, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL5, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL6, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL7, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL8, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL9, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL10, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL11, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL12, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL13, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL14, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL15, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL16, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL17, __HIDE__, 0, 0, __LEFT__); this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.AVATAR_LVL18, __HIDE__, 0, 0, __LEFT__); if (window.innerWidth < 1300) this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LOGO_INTERFACE, __DISPLAY__, 200, 100, __TOP__ | __LEFT__); else this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LOGO_INTERFACE, __DISPLAY__, -(/*IMAGES.LOGO_INTERFACE.width*/ 753) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __GAME__; this.bkgd[COUNTER++] = gui_create_image_hd(IMAGES.LINKS_BG, __DISPLAY__, 403, -10, __RIGHT__); if (window.innerWidth > 1300) { this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.CHANGELOG_BOX, __DISPLAY__, -(/*IMAGES.CHANGELOG_BOX.width*/ 885) / 4, -(/*IMAGES.CHANGELOG_BOX.height*/ 319) / 2, __BOTTOM__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __GAME__; } this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.PROFILE_BOX, __HIDE__, -(/*IMAGES.PROFILE_BOX.width*/ 1293) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __PROFILE__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SKINS_BOX, __HIDE__, -(/*IMAGES.SKINS_BOX.width*/ 1425) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __COSMETICS__; // this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.ACCOUNT_BOX, __HIDE__, -(/*IMAGES.ACCOUNT_BOX.width*/ 905) / 4, 50, __TOP__ | __MIDDLE_X__); // this.bkgd[COUNTER++].view = __LOGIN__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SHOP_BOX, __HIDE__, -(/*IMAGES.SHOP_BOX.width*/ 1608) / 4, 130, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SHOP__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SERVER_LOCATION_BOX, __HIDE__, -(/*IMAGES.SERVER_LOCATION_BOX.width*/ 1117) / 4, 130, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SERVER_DURATION_BOX, __HIDE__, -(/*IMAGES.SERVER_DURATION_BOX.width*/ 1222) / 4, 130, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SERVER_DURATION__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SERVER_ACCESS_BOX, __HIDE__, -(/*IMAGES.SERVER_ACCESS_BOX.width*/ 1222) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SERVER_ACCESS__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SEASON5_BOX, __HIDE__, -IMAGES.SEASON5_BOX.width / 4 - 350, -15, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SEASON5__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LEADERBOARD_BOX, __HIDE__, -(/*IMAGES.LEADERBOARD_BOX.width*/ 1226) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __LEADERBOARD__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.BUY_BREAD_BOX, __HIDE__, -(/*IMAGES.BUY_BREAD_BOX.width*/ 1381) / 4, 80, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __BUY__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN1, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_1__; var DEG = 360 / 100; var spinImg = this.create_spin([ ["#25c5d6", DEG * 3], ["#e2cf27", DEG * 10], ["#afac98", DEG * 30], ["#d88e23", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_1__; this.play_spin = function (_target, type, win) { _this.spin = 1; _this.spin_effect = 0; _this.spin_win_effect = 0; _this.spin_target = _target; _this.spin_type = type; var info; var id = 0; if (type === 0) { for (let i = 0; i < COSMETICS.SKIN.length; i++) { id = i; if (win === COSMETICS.SKIN[i].id) break; } info = COSMETICS.SKIN[id]; _this.unlock.skin[id] = 1; } else if (type === 1) { for (let i = 0; i < COSMETICS.ACCESSORY.length; i++) { id = i; if (win === COSMETICS.ACCESSORY[i].id) break; } info = COSMETICS.ACCESSORY[id]; _this.unlock.accessory[id] = 1; } else if (type === 2) { for (let i = 0; i < COSMETICS.BAG.length; i++) { id = i; if (win === COSMETICS.BAG[i].id) break; } info = COSMETICS.BAG[id]; _this.unlock.bag[id] = 1; } else if (type === 3) { for (let i = 0; i < COSMETICS.BOOK.length; i++) { id = i; if (win === COSMETICS.BOOK[i].id) break; } info = COSMETICS.BOOK[id]; _this.unlock.book[id] = 1; } else if (type === 4) { for (let i = 0; i < COSMETICS.CRATE.length; i++) { id = i; if (win === COSMETICS.CRATE[i].id) break; } info = COSMETICS.CRATE[id]; _this.unlock.crate[id] = 1; _this.unlock.dead[id] = 1; } _this.spin_win = id; _this.spin_author = gui_render_text("by " + info.author, "'Baloo Paaji', sans-serif", "#EFE4B4", 40, 500, undefined, 30, 24, undefined, undefined, undefined, undefined, "#000000", 24); _this.spin_name = gui_render_text(info.name, "'Baloo Paaji', sans-serif", "#EFE4B4", 60, 600, undefined, 30, 24, undefined, undefined, undefined, undefined, "#000000", 20); }; this.spin = 0; this.spin_effect = 0; this.spin_target = 0; this.spin_type = 0; this.spin_win_effect = 0; this.spin_author = undefined; this.spin_name = undefined; var SPIN_TOP = 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.ARROW_SPIN.height*/ 260 / 4; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN2, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_5__; var spinImg = this.create_spin([ ["#d45ce5", DEG * 3], ["#25c5d6", DEG * 10], ["#e2cf27", DEG * 30], ["#afac98", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_5__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN3, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_3__; var spinImg = this.create_spin([ ["#d33a2a", DEG * 3], ["#d45ce5", DEG * 10], ["#25c5d6", DEG * 30], ["#e2cf27", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_3__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN4, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_4__; var spinImg = this.create_spin([ ["#25c5d6", DEG * 3], ["#e2cf27", DEG * 10], ["#afac98", DEG * 30], ["#d88e23", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_4__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN5, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_2__; var spinImg = this.create_spin([ ["#d45ce5", DEG * 3], ["#25c5d6", DEG * 10], ["#e2cf27", DEG * 30], ["#afac98", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_2__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.SPIN6, __HIDE__, -(/*IMAGES.SPIN1.width*/ 1542) / 4, 150, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_6__; var spinImg = this.create_spin([ ["#d33a2a", DEG * 3], ["#d45ce5", DEG * 10], ["#25c5d6", DEG * 30], ["#e2cf27", DEG * 57] ]); this.bkgd[COUNTER] = gui_create_image_hd(spinImg, __HIDE__, -spinImg.width / 4, 178, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SPIN_6__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.CUSTOM_SKIN_BOX, __HIDE__, -(/*IMAGES.CUSTOM_SKIN_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __SKIN__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.ACCESSORIES_BOX, __HIDE__, -(/*IMAGES.ACCESSORIES_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __ACCESSORY__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.BAG_BOX, __HIDE__, -(/*IMAGES.BAG_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __BAG__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.BOOK_BOX, __HIDE__, -(/*IMAGES.BOOK_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __BOOK__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.CRATE_BOX, __HIDE__, -(/*IMAGES.CRATE_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __CRATE__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LOOT_BOX, __HIDE__, -(/*IMAGES.LOOT_BOX.width*/ 1366) / 4, 100, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __LOOT__; var BAG_REMAIN_BOX = COUNTER++; this.bkgd[BAG_REMAIN_BOX] = gui_create_image_hd(IMAGES.BAG_REMAIN_BOX, __HIDE__, /*IMAGES.AVATAR_RESUME.width*/ 908 / 2 + 30, 0, __TOP__); var SERVER_REMAIN_BOX = COUNTER++; this.bkgd[SERVER_REMAIN_BOX] = gui_create_image_hd(IMAGES.SERVER_REMAIN_BOX, __HIDE__, /*IMAGES.AVATAR_RESUME.width*/ 908 / 2 + /*IMAGES.BAG_REMAIN_BOX.width*/ 597 / 2 + 60, 0, __TOP__); this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LOCKED_CUSTOM_ALERT, __HIDE__, -(/*IMAGES.LOCKED_CUSTOM_ALERT.width*/ 758) / 4, -5, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __LOCKED_ACC__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.LOCKED_SKIN_ALERT, __HIDE__, -(/*IMAGES.LOCKED_SKIN_ALERT.width*/ 758) / 4, -5, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __LOCKED_SKIN__; var LEVEL_GAUGE = COUNTER++; this.bkgd[LEVEL_GAUGE] = gui_create_image_hd(IMAGES.GAUGE, __DISPLAY__, 93, 30, __TOP__); /* this.bkgd[COUNTER] = gui_create_image_hd (IMAGES.LEADERBOARD_SOON, __HIDE__, -IMAGES.LEADERBOARD_SOON.width / 4, 110, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __LEADERBOARD__; */ this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.CHANGE_NICKNAME1_BOX, __HIDE__, -(/*IMAGES.CHANGE_NICKNAME1_BOX.width*/ 692) / 4, 110, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __CHANGE_NICKNAME1__; this.bkgd[COUNTER] = gui_create_image_hd(IMAGES.CHANGE_NICKNAME0_BOX, __HIDE__, -(/*IMAGES.CHANGE_NICKNAME0_BOX.width*/ 692) / 4, 110, __TOP__ | __MIDDLE_X__); this.bkgd[COUNTER++].view = __CHANGE_NICKNAME0__; COUNTER = 0; this.buttons = []; // Buy Bread this.buttons[COUNTER] = gui_create_button( 50, 57, "", [IMAGES.BUY_BREAD_OUT, IMAGES.BUY_BREAD_IN, IMAGES.BUY_BREAD_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) select_subview(__BUY__); else select_subview(__LOGIN__); }, 320, 0, __LEFT__, __DISPLAY__ ); // Play Game COUNTER++; if (window.innerWidth < 1300) this.buttons[COUNTER] = gui_create_button(202, 97, "", [IMAGES.PLAY_BUTTON_OUT, IMAGES.PLAY_BUTTON_IN, IMAGES.PLAY_BUTTON_CLICK], __HD__, __NO_BREATH__, this.play_game, 462, 235, __TOP__ | __LEFT__, __DISPLAY__); else this.buttons[COUNTER] = gui_create_button(202, 97, "", [IMAGES.PLAY_BUTTON_OUT, IMAGES.PLAY_BUTTON_IN, IMAGES.PLAY_BUTTON_CLICK], __HD__, __NO_BREATH__, this.play_game, 74, 235, __TOP__ | __MIDDLE_X__, __DISPLAY__); this.buttons[COUNTER].view = __GAME__; // Changelog COUNTER++; if (window.innerWidth > 1300) { this.buttons[COUNTER] = gui_create_button( 355, 168, "", [IMAGES.CHANGELOG_BUTTON_OUT, IMAGES.CHANGELOG_BUTTON_OUT, IMAGES.CHANGELOG_BUTTON_OUT], __HD__, __NO_BREATH__, function () { window.open("./changelog.html", "_blank"); }, -195, -115, __BOTTOM__ | __MIDDLE_X__, __DISPLAY__ ); this.buttons[COUNTER++].view = __GAME__; } this.buttons[COUNTER++] = gui_create_button( 80, 80, "", [IMAGES.DISCORD_BUTTON_OUT, IMAGES.DISCORD_BUTTON_IN, IMAGES.DISCORD_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { window.open("https://discord.gg/nostarve", "_blank"); }, 60, 10, __RIGHT__, __DISPLAY__ ); // Leaderboard var LEADERBOARD_BUTTON = COUNTER++; this.buttons[LEADERBOARD_BUTTON] = gui_create_button( 232, 142, "", [IMAGES.ICONS_BOTTOM_BG_BUTTON_OUT, IMAGES.ICONS_BOTTOM_BG_BUTTON_IN, IMAGES.ICONS_BOTTOM_BG_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__LEADERBOARD__); getLeaderboard(ui.LEADERBOARD_ALL, ui.LEADERBOARD_TOTAL, ui.LEADERBOARD_SCORE, ui.LEADERBOARD_SEASON5); }, -5, 494, __LEFT__, __DISPLAY__ ); this.buttons[COUNTER++] = gui_create_button( 236, 165, "", [IMAGES.LEADERBOARD_ICON, IMAGES.LEADERBOARD_ICON, IMAGES.LEADERBOARD_ICON], __HD__, __BREATH__, function () { select_subview(__LEADERBOARD__); }, -5, 494, __LEFT__, __DISPLAY__ ); // Server access // Shop var SHOP_BUTTON = COUNTER++; this.buttons[SHOP_BUTTON] = gui_create_button( 236, 165, "", [IMAGES.ICONS_BG_BUTTON_OUT, IMAGES.ICONS_BG_BUTTON_IN, IMAGES.ICONS_BG_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, -5, 336, __LEFT__, __DISPLAY__ ); this.buttons[COUNTER++] = gui_create_button( 236, 165, "", [IMAGES.SHOP_ICON, IMAGES.SHOP_ICON, IMAGES.SHOP_ICON], __HD__, __BREATH__, function () { select_subview(__SHOP__); }, -5, 336, __LEFT__, __DISPLAY__ ); // Cosmetic var COSMETICS_BUTTON = COUNTER++; this.buttons[COSMETICS_BUTTON] = gui_create_button( 236, 165, "", [IMAGES.ICONS_BG_BUTTON_OUT, IMAGES.ICONS_BG_BUTTON_IN, IMAGES.ICONS_BG_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -5, 257, __LEFT__, __DISPLAY__ ); this.buttons[COUNTER++] = gui_create_button( 236, 165, "", [IMAGES.SKINS_ICON, IMAGES.SKINS_ICON, IMAGES.SKINS_ICON], __HD__, __BREATH__, function () { select_subview(__COSMETICS__); }, -5, 257, __LEFT__, __DISPLAY__ ); // Play game var GAME_BUTTON = COUNTER++; this.buttons[GAME_BUTTON] = gui_create_button( 236, 165, "", [IMAGES.ICONS_BG_BUTTON_OUT, IMAGES.ICONS_BG_BUTTON_IN, IMAGES.ICONS_BG_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__GAME__); }, -5, 178, __LEFT__, __DISPLAY__ ); this.buttons[COUNTER++] = gui_create_button( 236, 165, "", [IMAGES.START_ICON, IMAGES.START_ICON, IMAGES.START_ICON], __HD__, __BREATH__, function () { select_subview(__GAME__); }, -5, 178, __LEFT__, __DISPLAY__ ); // Login var LOGIN_BUTTON = COUNTER++; this.LOGIN_BUTTON = LOGIN_BUTTON; this.buttons[LOGIN_BUTTON] = gui_create_button( 324, 222, "", [IMAGES.LOGIN_BUTTON_OUT, IMAGES.LOGIN_BUTTON_IN, IMAGES.LOGIN_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__LOGIN__); }, 0, 70, __LEFT__, __DISPLAY__ ); // Profile var PROFILE_BUTTON = COUNTER++; var PROFILE_BUTTON_2 = COUNTER++; this.PROFILE_BUTTON = PROFILE_BUTTON; this.PROFILE_BUTTON_2 = PROFILE_BUTTON_2; this.buttons[PROFILE_BUTTON] = gui_create_button( 324, 222, "", [IMAGES.PROFILE_BUTTON_OUT, IMAGES.PROFILE_BUTTON_IN, IMAGES.PROFILE_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__PROFILE__); init_profile(-1); }, 0, 70, __LEFT__, __HIDE__ ); this.buttons[PROFILE_BUTTON_2] = gui_create_button( 324, 222, "", [IMAGES.PROFILE_ICON, IMAGES.PROFILE_ICON, IMAGES.PROFILE_ICON], __HD__, __BREATH__, function () { select_subview(__PROFILE__); init_profile(-1); }, 0, 70, __LEFT__, __HIDE__ ); // Do not display mode selection if the player use private server to play the game if (client.privateServer === 0) { var NORMAL_MODE = COUNTER++; if (window.innerWidth < 1300) this.buttons[NORMAL_MODE] = gui_create_button( 266, 176, "", [IMAGES.NORMAL_MODE_OUT, IMAGES.NORMAL_MODE_IN, IMAGES.NORMAL_MODE_CLICK], __HD__, __NO_BREATH__, function () { client.select_gamemode(WORLD.MODE_PVP); }, 150, 300, __LEFT__ | __TOP__, __DISPLAY__ ); else this.buttons[NORMAL_MODE] = gui_create_button( 266, 176, "", [IMAGES.NORMAL_MODE_OUT, IMAGES.NORMAL_MODE_IN, IMAGES.NORMAL_MODE_CLICK], __HD__, __NO_BREATH__, function () { client.select_gamemode(WORLD.MODE_PVP); }, -200,// -340, 300,//100, __MIDDLE_X__ | __TOP__, __DISPLAY__ ); this.buttons[NORMAL_MODE].view = __GAME__; this.buttons[NORMAL_MODE].hint = 0; // var FOREST_MODE = COUNTER++; // if (window.innerWidth < 1300) // this.buttons[FOREST_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.FOREST_MODE_OUT, IMAGES.FOREST_MODE_IN, IMAGES.FOREST_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_LEGACY); // }, // 150, // 400, // __LEFT__ | __TOP__, // __DISPLAY__ // ); // else // this.buttons[FOREST_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.FOREST_MODE_OUT, IMAGES.FOREST_MODE_IN, IMAGES.FOREST_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_LEGACY); // }, // -340, // 200, // __MIDDLE_X__ | __TOP__, // __DISPLAY__ // ); // this.buttons[FOREST_MODE].view = __GAME__; // this.buttons[FOREST_MODE].hint = 0; var MODE_COMMUNITY = COUNTER++; if (window.innerWidth < 1300) this.buttons[MODE_COMMUNITY] = gui_create_button( 266, 176, "", [IMAGES.MODE_COMMUNITY_OUT, IMAGES.MODE_COMMUNITY_IN, IMAGES.MODE_COMMUNITY_CLICK], __HD__, __NO_BREATH__, function () { client.select_gamemode(WORLD.MODE_COMMUNITY); }, 450, 300, __LEFT__ | __TOP__, __DISPLAY__ ); else this.buttons[MODE_COMMUNITY] = gui_create_button( 266, 176, "", [IMAGES.MODE_COMMUNITY_OUT, IMAGES.MODE_COMMUNITY_IN, IMAGES.MODE_COMMUNITY_CLICK], __HD__, __NO_BREATH__, function () { client.select_gamemode(WORLD.MODE_COMMUNITY); }, -60,// -340, 300, __MIDDLE_X__ | __TOP__, __DISPLAY__ ); this.buttons[MODE_COMMUNITY].view = __GAME__; this.buttons[MODE_COMMUNITY].hint = 0; // var ZOMBIE_MODE = COUNTER++; // if (window.innerWidth < 1300) // this.buttons[ZOMBIE_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.ZOMBIE_MODE_OUT, IMAGES.ZOMBIE_MODE_IN, IMAGES.ZOMBIE_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_ZOMBIES); // }, // 300, // 300, // __LEFT__ | __TOP__, // __DISPLAY__ // ); // else // this.buttons[ZOMBIE_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.ZOMBIE_MODE_OUT, IMAGES.ZOMBIE_MODE_IN, IMAGES.ZOMBIE_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_ZOMBIES); // }, // 204, // 100, // __MIDDLE_X__ | __TOP__, // __DISPLAY__ // ); // this.buttons[ZOMBIE_MODE].view = __GAME__; // this.buttons[ZOMBIE_MODE].hint = 0; // var VAMPIRE_MODE = COUNTER++; // if (window.innerWidth < 1300) // this.buttons[VAMPIRE_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.VAMPIRE_MODE_OUT, IMAGES.VAMPIRE_MODE_IN, IMAGES.VAMPIRE_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_VAMPIRES); // }, // 300, // 400, // __LEFT__ | __TOP__, // __DISPLAY__ // ); // else // this.buttons[VAMPIRE_MODE] = gui_create_button( // 266, // 176, // "", // [IMAGES.VAMPIRE_MODE_OUT, IMAGES.VAMPIRE_MODE_IN, IMAGES.VAMPIRE_MODE_CLICK], // __HD__, // __NO_BREATH__, // function () { // client.select_gamemode(WORLD.MODE_VAMPIRES); // }, // 204, // 200, // __MIDDLE_X__ | __TOP__, // __DISPLAY__ // ); // this.buttons[VAMPIRE_MODE].view = __GAME__; // this.buttons[VAMPIRE_MODE].hint = 0; // Experimental var MODE_EXPERIMENTAL = COUNTER++; this.buttons[MODE_EXPERIMENTAL] = gui_create_button( 266, 176, "", [IMAGES.MODE_EXPERIMENTAL_OUT, IMAGES.MODE_EXPERIMENTAL_IN, IMAGES.MODE_EXPERIMENTAL_CLICK], __HD__, __NO_BREATH__, function () { client.select_gamemode(WORLD.MODE_EXPERIMENTAL); }, window.innerWidth < 1300 ? 450 : 80,//204, window.innerWidth < 1300 ? 400 : 300, (window.innerWidth < 1300 ? __LEFT__ : __MIDDLE_X__) | __TOP__, __DISPLAY__ ); this.buttons[MODE_EXPERIMENTAL].view = __GAME__; this.buttons[MODE_EXPERIMENTAL].hint = 0; } //Modify Profile this.buttons[COUNTER] = gui_create_button( 87, 78, "", [IMAGES.MODIFY_NAME_OUT, IMAGES.MODIFY_NAME_IN, IMAGES.MODIFY_NAME_CLICK], __HD__, __NO_BREATH__, function () { ui.generate_new_nickname(); if (ui.firstName === 0) select_subview(__CHANGE_NICKNAME0__); else select_subview(__CHANGE_NICKNAME1__); }, 127, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __PROFILE__; //Log out Profile this.buttons[COUNTER] = gui_create_button( 87, 78, "", [IMAGES.LOGOUT_OUT, IMAGES.LOGOUT_IN, IMAGES.LOGOUT_CLICK], __HD__, __NO_BREATH__, function () { logout(); }, 255, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __PROFILE__; // Close Box // this.buttons[COUNTER] = gui_create_button( // 58, // 64, // "", // [IMAGES.CLOSE_BUTTON_OUT, IMAGES.CLOSE_BUTTON_IN, IMAGES.CLOSE_BUTTON_CLICK], // __HD__, // __NO_BREATH__, // function () { // select_subview(__GAME__); // }, // 189, // 118, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __LOGIN__; // Login Google // this.buttons[COUNTER] = gui_create_button( // 497, // 72, // "", // [IMAGES.LOGIN_GOOGLE_OUT, IMAGES.LOGIN_GOOGLE_IN, IMAGES.LOGIN_GOOGLE_CLICK], // __HD__, // __NO_BREATH__, // function () { // loginWithGoogle(); // }, // -130, // 390, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __LOGIN__; var __LEVEL_FACTOR__ = 20000; function xp_formula(score) { var lvl = ui.level_formula(score); var previous_exp = lvl * lvl * __LEVEL_FACTOR__; var next_exp = (lvl + 1) * (lvl + 1) * __LEVEL_FACTOR__ - previous_exp; score -= previous_exp; return score / next_exp; } this.xp_formula = xp_formula; function level_formula(score) { return window.Math.floor(window.Math.sqrt(score / __LEVEL_FACTOR__)); } this.level_formula = level_formula; this.update_score = function (score) { ui.lvl = ui.level_formula(score); ui.xp_dest = ui.xp_formula(score); ui.xp = 0; ui.score = score; }; function init_profile(id, season) { // Change season stats if (season !== undefined) { ui.profile_season = season; var lastSeason = ui.seasons[season]; ui.score = lastSeason["score"]; ui.kill = lastSeason["kill"]; ui.death = lastSeason["death"]; ui.time = lastSeason["time"]; ui.bestScore = lastSeason["bestScore"]; ui.bestKill = lastSeason["bestKill"]; ui.bestTime = lastSeason["bestTime"]; ui.scoreTotal = lastSeason["scoreTotal"]; } // Reset id with the previous value if not defined if (id === undefined) id = ui.current_mode_score; if (id === undefined || id === -1) id = 0; ui.current_mode_score = id; // if (id >= 0) { // window.document.getElementById("stats_box_time").innerHTML = ui.bestTime[id]; // window.document.getElementById("stats_box_kill").innerHTML = ui.bestKill[id]; // window.document.getElementById("stats_box_score").innerHTML = ui.bestScore[id]; // } if (id <= 0) { window.document.getElementById("stats_box_time").innerHTML = ui.time; window.document.getElementById("stats_box_kill").innerHTML = ui.kill; window.document.getElementById("stats_box_score").innerHTML = ui.score; } } this.login_restore_data = function (data) { ui.buttons[ui.LOGIN_BUTTON].info.active = 0; ui.buttons[ui.PROFILE_BUTTON].info.active = 1; ui.buttons[ui.PROFILE_BUTTON_2].info.active = 1; init_skin(); if (data["name"].indexOf("Starver#") === -1) window.document.getElementById("account_nickname_input").value = data["name"]; else window.document.getElementById("account_nickname_input").value = data["name"]; ui.bread = data["bread"]; var seasons = data["seasons"]; var lastSeason = seasons[seasons.length - 1]; ui.seasons = seasons; _this.update_score(lastSeason["score"]); ui.score = lastSeason["score"]; ui.kill = lastSeason["kill"]; ui.death = lastSeason["death"]; ui.time = lastSeason["time"]; ui.bestScore = lastSeason["bestScore"]; ui.bestKill = lastSeason["bestKill"]; ui.bestTime = lastSeason["bestTime"]; ui.scoreTotal = lastSeason["scoreTotal"]; ui.firstName = data["firstName"]; window.document.getElementById("serverAddressInput").value = DB + "?server=" + data["privateServer"]; if (ui.firstName === undefined) ui.firstName = 0; ui.privateServerTime = Date.now() + data["privateServerTime"]; if (window.Number(data["privateServerTime"]) > 0) ui.privateServerTime = Date.now() + window.Number(data["privateServerTime"]); ui.kit = Date.now() + data["kit"]; if (window.Number(data["kit"]) > 0) ui.kit = Date.now() + window.Number(data["kit"]); var cosmetic = COSMETICS.SKIN; for (var i = 0; i < data["skins"].length; i++) { var v = data["skins"][i]; if (v > 0) { for (var j = 0; j < cosmetic.length; j++) { if (cosmetic[j].id === i) _this.unlock.skin[j] = 1; } } } var cosmetic = COSMETICS.ACCESSORY; for (var i = 0; i < data["accessories"].length; i++) { var v = data["accessories"][i]; if (v > 0) { for (var j = 0; j < cosmetic.length; j++) { if (cosmetic[j].id === i) _this.unlock.accessory[j] = 1; } } } var cosmetic = COSMETICS.BOOK; for (var i = 0; i < data["books"].length; i++) { var v = data["books"][i]; if (v > 0) { for (var j = 0; j < cosmetic.length; j++) { if (cosmetic[j].id === i) _this.unlock.book[j] = 1; } } } var cosmetic = COSMETICS.BAG; for (var i = 0; i < data["bags"].length; i++) { var v = data["bags"][i]; if (v > 0) { for (var j = 0; j < cosmetic.length; j++) { if (cosmetic[j].id === i) _this.unlock.bag[j] = 1; } } } var cosmetic = COSMETICS.CRATE; for (var i = 0; i < data["crates"].length; i++) { var v = data["crates"][i]; if (v > 0) { for (var j = 0; j < cosmetic.length; j++) { if (cosmetic[j].id === i) { _this.unlock.crate[j] = 1; _this.unlock.dead[j] = 1; } } } } }; this.login_after = function () { window.onUserLogin = function () { select_subview(__GAME__); getUserDetails(_this.login_restore_data); }; // If the user logged in during the loading time if (userAlreadyLoggedIn === 1) window.onUserLogin(); }; window.onUserLogout = function () { ui.buttons[ui.LOGIN_BUTTON].info.active = 1; ui.buttons[ui.PROFILE_BUTTON].info.active = 0; ui.buttons[ui.PROFILE_BUTTON_2].info.active = 0; select_subview(__GAME__); }; this.isUserLogged = function () { return ui.buttons[ui.PROFILE_BUTTON].info.active; }; // Get More Golden Bread Shop this.buttons[COUNTER] = gui_create_button( 461, 105, "", [IMAGES.GET_MORE_BUTTON_OUT, IMAGES.GET_MORE_BUTTON_IN, IMAGES.GET_MORE_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) select_subview(__BUY__); else select_subview(__LOGIN__); }, -100, 80, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.LEADERBOARD_LEVEL = COUNTER; // Level leaderboard this.buttons[COUNTER] = gui_create_button( 97, 66, "", [IMAGES.LVL_LEADERBOARD_OUT, IMAGES.LVL_LEADERBOARD_IN, IMAGES.LVL_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { }, -14, 151, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Kill leaderboard this.LEADERBOARD_KILL = COUNTER; this.buttons[COUNTER] = gui_create_button( 135, 66, "", [IMAGES.KILL_LEADERBOARD_OUT, IMAGES.KILL_LEADERBOARD_IN, IMAGES.KILL_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, undefined, ui.LEADERBOARD_KILL); }, 37.5, 151, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Time leaderboard this.LEADERBOARD_TIME = COUNTER; this.buttons[COUNTER] = gui_create_button( 160, 66, "", [IMAGES.TIME_LEADERBOARD_OUT, IMAGES.TIME_LEADERBOARD_IN, IMAGES.TIME_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, undefined, ui.LEADERBOARD_TIME); }, 107.5, 151, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Score leaderboard this.LEADERBOARD_SCORE = COUNTER; this.buttons[COUNTER] = gui_create_button( 207, 66, "", [IMAGES.SCORE_LEADERBOARD_OUT, IMAGES.SCORE_LEADERBOARD_IN, IMAGES.SCORE_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, undefined, ui.LEADERBOARD_SCORE); }, 190.5, 151, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Today leaderboard this.LEADERBOARD_TODAY = COUNTER; this.buttons[COUNTER] = gui_create_button( 144, 66, "", [IMAGES.TODAY_LEADERBOARD_OUT, IMAGES.TODAY_LEADERBOARD_IN, IMAGES.TODAY_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(ui.LEADERBOARD_TODAY); }, 103.5, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Week leaderboard this.LEADERBOARD_WEEK = COUNTER; this.buttons[COUNTER] = gui_create_button( 124, 66, "", [IMAGES.WEEK_LEADERBOARD_OUT, IMAGES.WEEK_LEADERBOARD_IN, IMAGES.WEEK_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(ui.LEADERBOARD_WEEK); }, 177.5, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // All leaderboard this.LEADERBOARD_ALL = COUNTER; this.buttons[COUNTER] = gui_create_button( 104, 66, "", [IMAGES.ALL_LEADERBOARD_OUT, IMAGES.ALL_LEADERBOARD_IN, IMAGES.ALL_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(ui.LEADERBOARD_ALL); }, 242, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Season1 leaderboard this.LEADERBOARD_SEASON1 = COUNTER; this.buttons[COUNTER] = gui_create_button( 183, 66, "", [IMAGES.SEASON1_LEADERBOARD_OUT, IMAGES.SEASON1_LEADERBOARD_IN, IMAGES.SEASON1_LEADERBOARD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, undefined, undefined, ui.LEADERBOARD_SEASON1); }, -290, 521, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // Currency lot 1 this.buttons[COUNTER] = gui_create_button( 232, 352, "", [IMAGES.CURRENCY1_OUT, IMAGES.CURRENCY1_IN, IMAGES.CURRENCY1_CLICK], __HD__, __NO_BREATH__, function () { openPaymentSystem(300); }, -330, 135, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; // Currency lot 2 this.buttons[COUNTER] = gui_create_button( 232, 352, "", [IMAGES.CURRENCY2_OUT, IMAGES.CURRENCY2_IN, IMAGES.CURRENCY2_CLICK], __HD__, __NO_BREATH__, function () { openPaymentSystem(600); }, -195, 135, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; // Currency lot 3 this.buttons[COUNTER] = gui_create_button( 243, 374, "", [IMAGES.CURRENCY3_OUT, IMAGES.CURRENCY3_IN, IMAGES.CURRENCY3_CLICK], __HD__, __NO_BREATH__, function () { openPaymentSystem(2600); }, -60, 130, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; // Currency lot 4 this.buttons[COUNTER] = gui_create_button( 232, 352, "", [IMAGES.CURRENCY4_OUT, IMAGES.CURRENCY4_IN, IMAGES.CURRENCY4_CLICK], __HD__, __NO_BREATH__, function () { openPaymentSystem(7000); }, 78, 135, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; // Currency lot 5 this.buttons[COUNTER] = gui_create_button( 243, 374, "", [IMAGES.CURRENCY5_OUT, IMAGES.CURRENCY5_IN, IMAGES.CURRENCY5_CLICK], __HD__, __NO_BREATH__, function () { openPaymentSystem(20000); }, 213, 130, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; // Close Box this.buttons[COUNTER] = gui_create_button( 58, 64, "", [IMAGES.CLOSE_BUTTON_OUT, IMAGES.CLOSE_BUTTON_IN, IMAGES.CLOSE_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 300, 88, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BUY__; /// Skins buttons interface //SKin Button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.SKIN_BUTTON_OUT, IMAGES.SKIN_BUTTON_IN, IMAGES.SKIN_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SKIN__); skinSelector.initSelector(); }, -315, 185, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //Accessory button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.ACCESSORY_BUTTON_OUT, IMAGES.ACCESSORY_BUTTON_IN, IMAGES.ACCESSORY_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__ACCESSORY__); accessorySelector.initSelector(); }, -315, 321, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //Bag button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.BAG_BUTTON_OUT, IMAGES.BAG_BUTTON_IN, IMAGES.BAG_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__BAG__); bagSelector.initSelector(); }, 153, 185, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //Book button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.BOOK_BUTTON_OUT, IMAGES.BOOK_BUTTON_IN, IMAGES.BOOK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__BOOK__); bookSelector.initSelector(); }, 153, 321, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //Dead Box button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.CRATE_BUTTON_OUT, IMAGES.CRATE_BUTTON_IN, IMAGES.CRATE_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__CRATE__); deadSelector.initSelector(); }, 153, 463, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //Dead Box button this.buttons[COUNTER] = gui_create_button( 323, 112, "", [IMAGES.LOOT_BUTTON_OUT, IMAGES.LOOT_BUTTON_IN, IMAGES.LOOT_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__LOOT__); crateSelector.initSelector(); }, -315, 463, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __COSMETICS__; //SEASON 5 // this.buttons[COUNTER] = gui_create_button( // 327, // 117, // "", // [IMAGES.SEASON_5, IMAGES.SEASON_5_IN, IMAGES.SEASON_5_OUT], // __HD__, // __NO_BREATH__, // function () { // select_subview(__SEASON5__); // }, // 155, // 70, // __LEFT__, // __DISPLAY__ // ); // this.buttons[COUNTER++].view = __GAME__; ///Alert Locked Skin // SHOP button this.buttons[COUNTER] = gui_create_button( 130, 129, "", [IMAGES.SHOP_BUTTON_OUT, IMAGES.SHOP_BUTTON_IN, IMAGES.SHOP_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { update_subview(__LOCKED_SKIN__, __HIDE__, "none"); select_subview(__SHOP__); }, 10, 40, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LOCKED_SKIN__; ///Alert Locked Custom // SHOP button this.buttons[COUNTER] = gui_create_button( 130, 129, "", [IMAGES.SHOP_BUTTON_OUT, IMAGES.SHOP_BUTTON_IN, IMAGES.SHOP_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { update_subview(__LOCKED_ACC__, __HIDE__, "none"); select_subview(__SHOP__); }, 10, 40, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LOCKED_ACC__; this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 200, 140, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER] = gui_create_button( 253, 110, "", [IMAGES.ATLANTA_OUT, IMAGES.ATLANTA_IN, IMAGES.ATLANTA_CLICK], __HD__, __NO_BREATH__, function () { regionPreference("Atlanta"); }, -265, 300, __MIDDLE_X__ | __TOP__, __HIDE__ ); /// SHOP prices // Price1 button this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE5_OUT, IMAGES.PRICE5_IN, IMAGES.PRICE5_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_1__); }, -210, 170, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE1_OUT, IMAGES.PRICE1_IN, IMAGES.PRICE1_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_4__); }, 70, 170, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE2_OUT, IMAGES.PRICE2_IN, IMAGES.PRICE2_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_2__); }, 70, 204, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE3_OUT, IMAGES.PRICE3_IN, IMAGES.PRICE3_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_5__); }, -210, 204, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE3_OUT, IMAGES.PRICE3_IN, IMAGES.PRICE3_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_6__); }, 70, 238, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE3_OUT, IMAGES.PRICE3_IN, IMAGES.PRICE3_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buyKit(0, 300); else select_subview(__LOGIN__); }, 307, 205, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE4_OUT, IMAGES.PRICE4_IN, IMAGES.PRICE4_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SPIN_3__); }, -210, 238, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 145, 69, "", [IMAGES.PRICE4_OUT, IMAGES.PRICE4_IN, IMAGES.PRICE4_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buyKit(1, 600); else select_subview(__LOGIN__); }, 307, 239, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; this.buttons[COUNTER] = gui_create_button( 192, 101, "", [IMAGES.YES_BUTTON_OUT, IMAGES.YES_BUTTON_IN, IMAGES.YES_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { buyNameChanger(); }, -100, 250, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __CHANGE_NICKNAME0__; this.buttons[COUNTER] = gui_create_button( 192, 104, "", [IMAGES.YES_300_BUTTON_OUT, IMAGES.YES_300_BUTTON_IN, IMAGES.YES_300_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { buyNameChanger(); }, -100, 239, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __CHANGE_NICKNAME1__; this.buttons[COUNTER] = gui_create_button( 192, 101, "", [IMAGES.NO_BUTTON_OUT, IMAGES.NO_BUTTON_IN, IMAGES.NO_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__PROFILE__); }, 10, 250, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __CHANGE_NICKNAME0__; this.buttons[COUNTER] = gui_create_button( 192, 104, "", [IMAGES.NO_THANKS_BUTTON_OUT, IMAGES.NO_THANKS_BUTTON_IN, IMAGES.NO_THANKS_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__PROFILE__); }, 10, 239, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __CHANGE_NICKNAME1__; ///Custom Skin Interface var RARITY_BUTTON = []; RARITY_BUTTON[RARITY.FREE] = [IMAGES.FREE_ITEM_OUT, IMAGES.FREE_ITEM_IN, IMAGES.FREE_ITEM_CLICK]; RARITY_BUTTON[RARITY.WOOD] = [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK]; RARITY_BUTTON[RARITY.STONE] = [IMAGES.STONE_ITEM_OUT, IMAGES.STONE_ITEM_IN, IMAGES.STONE_ITEM_CLICK]; RARITY_BUTTON[RARITY.GOLD] = [IMAGES.GOLD_ITEM_OUT, IMAGES.GOLD_ITEM_IN, IMAGES.GOLD_ITEM_CLICK]; RARITY_BUTTON[RARITY.DIAMOND] = [IMAGES.DIAMOND_ITEM_OUT, IMAGES.DIAMOND_ITEM_IN, IMAGES.DIAMOND_ITEM_CLICK]; RARITY_BUTTON[RARITY.AMETHYST] = [IMAGES.AMETHYST_ITEM_OUT, IMAGES.AMETHYST_ITEM_IN, IMAGES.AMETHYST_ITEM_CLICK]; RARITY_BUTTON[RARITY.REIDITE] = [IMAGES.REIDITE_ITEM_OUT, IMAGES.REIDITE_ITEM_IN, IMAGES.REIDITE_ITEM_CLICK]; RARITY_BUTTON[RARITY.LEVEL] = [IMAGES.LEVEL_ITEM_OUT, IMAGES.LEVEL_ITEM_IN, IMAGES.LEVEL_ITEM_CLICK]; RARITY_BUTTON[RARITY.SPECIAL] = [IMAGES.SPECIAL_ITEM_OUT, IMAGES.SPECIAL_ITEM_IN, IMAGES.SPECIAL_ITEM_CLICK]; ///ITEMS let FIRST_BUTTON_SKIN = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __SKIN__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SKIN__; ///Accessories Interface ///ITEMS let FIRST_BUTTON_ACCESSORY = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __ACCESSORY__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __ACCESSORY__; ///Custom loot Interface ///ITEMS let FIRST_BUTTON_LOOT = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __LOOT__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LOOT__; ///BAG Interface ///ITEMS let FIRST_BUTTON_BAG = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BAG__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BAG__; ///Book Interface ///ITEMS let FIRST_BUTTON_BOOK = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __BOOK__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __BOOK__; //Crate Interface ///ITEMS let FIRST_BUTTON_CRATE = COUNTER; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, -29, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 65, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 205, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 300, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; this.buttons[COUNTER] = gui_create_button(178, 182, "", [IMAGES.WOOD_ITEM_OUT, IMAGES.WOOD_ITEM_IN, IMAGES.WOOD_ITEM_CLICK], __HD__, __NO_BREATH__, undefined, 159, 395, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; // Skin previous this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_PREVIOUS_OUT, IMAGES.SKIN_PREVIOUS_IN, IMAGES.SKIN_PREVIOUS_CLICK], __HD__, __NO_BREATH__, undefined, -61, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; // Skin next this.buttons[COUNTER] = gui_create_button(39, 122, "", [IMAGES.SKIN_NEXT_OUT, IMAGES.SKIN_NEXT_IN, IMAGES.SKIN_NEXT_CLICK], __HD__, __NO_BREATH__, undefined, 260, 315, __MIDDLE_X__ | __TOP__, __HIDE__); this.buttons[COUNTER++].view = __CRATE__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__COSMETICS__); }, -320, 470, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __CRATE__; /// Spin1 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_1_OUT, IMAGES.SPIN_BUTTON_1_IN, IMAGES.SPIN_BUTTON_1_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(3, 50); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_4__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_4__; /// Spin2 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_2_OUT, IMAGES.SPIN_BUTTON_2_IN, IMAGES.SPIN_BUTTON_2_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(0, 100); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_1__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_1__; /// Spin3 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_3_OUT, IMAGES.SPIN_BUTTON_3_IN, IMAGES.SPIN_BUTTON_3_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(4, 150); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_2__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_2__; /// Spin4 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_4_OUT, IMAGES.SPIN_BUTTON_4_IN, IMAGES.SPIN_BUTTON_4_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(1, 300); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_5__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_5__; /// Spin5 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_5_OUT, IMAGES.SPIN_BUTTON_5_IN, IMAGES.SPIN_BUTTON_5_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(2, 600); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_3__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_3__; /// Spin5 button this.buttons[COUNTER] = gui_create_button( 260, 260, "", [IMAGES.SPIN_BUTTON_4_OUT, IMAGES.SPIN_BUTTON_4_IN, IMAGES.SPIN_BUTTON_4_CLICK], __HD__, __NO_BREATH__, function () { if (_this.isUserLogged()) buySpin(5, 300); else select_subview(__LOGIN__); }, -(/*IMAGES.SPIN_BUTTON_2_OUT.width*/ 260) / 4, 150 + /*IMAGES.SPIN1.height*/ 448 / 4 - /*IMAGES.SPIN_BUTTON_2_OUT.height*/ 260 / 4, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_6__; // Button BACK this.buttons[COUNTER] = gui_create_button( 115, 73, "", [IMAGES.BACK_BUTTON_OUT, IMAGES.BACK_BUTTON_IN, IMAGES.BACK_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { select_subview(__SHOP__); }, 309, 180, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SPIN_6__; ///PROFILE //Season1 var SCORE_MODE_SEASON1 = COUNTER; this.buttons[COUNTER] = gui_create_button( 205, 67, "", [IMAGES.SEASON1_PROFILE_OUT, IMAGES.SEASON1_PROFILE_IN, IMAGES.SEASON1_PROFILE_CLICK], __HD__, __NO_BREATH__, function () { init_profile(undefined, 0); }, -305, 125, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __PROFILE__; //Total // var SCORE_MODE_TOTAL = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 460, // 73, // "", // [IMAGES.TOTAL_PROFILE_OUT, IMAGES.TOTAL_PROFILE_IN, IMAGES.TOTAL_PROFILE_CLICK], // __HD__, // __NO_BREATH__, // function () { // init_profile(-1); // }, // -180, // 170, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __PROFILE__; //Normal // var SCORE_MODE_NORMAL = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 222, // 68, // "", // [IMAGES.NORMAL_PROFILE_OUT, IMAGES.NORMAL_PROFILE_IN, IMAGES.NORMAL_PROFILE_CLICK], // __HD__, // __NO_BREATH__, // function () { // init_profile(WORLD.MODE_PVP); // }, // -180, // 215, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __PROFILE__; //Forest // var SCORE_MODE_FOREST = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 222, // 68, // "", // [IMAGES.FOREST_PROFILE_OUT, IMAGES.FOREST_PROFILE_IN, IMAGES.FOREST_PROFILE_CLICK], // __HD__, // __NO_BREATH__, // function () { // init_profile(WORLD.MODE_LEGACY); // }, // -180, // 260, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __PROFILE__; //Zombie // var SCORE_MODE_ZOMBIE = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 222, // 68, // "", // [IMAGES.ZOMBIE_PROFILE_OUT, IMAGES.ZOMBIE_PROFILE_IN, IMAGES.ZOMBIE_PROFILE_CLICK], // __HD__, // __NO_BREATH__, // function () { // init_profile(WORLD.MODE_ZOMBIES); // }, // -60, // 215, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __PROFILE__; //Vampire // var SCORE_MODE_VAMPIRE = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 222, // 68, // "", // [IMAGES.VAMPIRE_PROFILE_OUT, IMAGES.VAMPIRE_PROFILE_IN, IMAGES.VAMPIRE_PROFILE_CLICK], // __HD__, // __NO_BREATH__, // function () { // init_profile(WORLD.MODE_VAMPIRES); // }, // -60, // 260, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __PROFILE__; ///Leaderboard //Total this.LEADERBOARD_TOTAL = COUNTER; this.buttons[COUNTER] = gui_create_button( 143, 66, "", [IMAGES.TOTAL_LEAD_OUT, IMAGES.TOTAL_LEAD_IN, IMAGES.TOTAL_LEAD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, ui.LEADERBOARD_TOTAL); }, -298, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // //Normal this.LEADERBOARD_NORMAL = COUNTER; this.buttons[COUNTER] = gui_create_button( 104, 66, "", [IMAGES.NORMAL_LEAD_OUT, IMAGES.NORMAL_LEAD_IN, IMAGES.NORMAL_LEAD_CLICK], __HD__, __NO_BREATH__, function () { getLeaderboard(undefined, ui.LEADERBOARD_NORMAL); }, -223, 110, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __LEADERBOARD__; // //Forest // this.LEADERBOARD_FOREST = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 110, // 66, // "", // [IMAGES.FOREST_LEAD_OUT, IMAGES.FOREST_LEAD_IN, IMAGES.FOREST_LEAD_CLICK], // __HD__, // __NO_BREATH__, // function () { // getLeaderboard(undefined, ui.LEADERBOARD_FOREST); // }, // -168, // 110, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __LEADERBOARD__; // //Zombie // this.LEADERBOARD_ZOMBIE = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 88, // 66, // "", // [IMAGES.ZOMBIE_LEAD_OUT, IMAGES.ZOMBIE_LEAD_IN, IMAGES.ZOMBIE_LEAD_CLICK], // __HD__, // __NO_BREATH__, // function () { // getLeaderboard(undefined, ui.LEADERBOARD_ZOMBIE); // }, // -110, // 110, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __LEADERBOARD__; // //Vampire // this.LEADERBOARD_VAMPIRE = COUNTER; // this.buttons[COUNTER] = gui_create_button( // 88, // 66, // "", // [IMAGES.VAMPIRE_LEAD_OUT, IMAGES.VAMPIRE_LEAD_IN, IMAGES.VAMPIRE_LEAD_CLICK], // __HD__, // __NO_BREATH__, // function () { // getLeaderboard(undefined, ui.LEADERBOARD_VAMPIRE); // }, // -63, // 110, // __MIDDLE_X__ | __TOP__, // __HIDE__ // ); // this.buttons[COUNTER++].view = __LEADERBOARD__; /// Shop // Terms button this.buttons[COUNTER] = gui_create_button( 86, 44, "", [IMAGES.TERMS_BUTTON_OUT, IMAGES.TERMS_BUTTON_IN, IMAGES.TERMS_BUTTON_CLICK], __HD__, __NO_BREATH__, function () { window.open("./terms.html", "_blank"); }, 349, 290, __MIDDLE_X__ | __TOP__, __HIDE__ ); this.buttons[COUNTER++].view = __SHOP__; var skinSelector = new CosmeticSelector( COSMETICS.SKIN, FIRST_BUTTON_SKIN, function (v) { ui.skin = v; if (ui.unlock.skin[v] === 1) cookiesManager.set("starve_skin", "" + v, 30); }, this.skin, this.unlock.skin ); var bagSelector = new CosmeticSelector( COSMETICS.BAG, FIRST_BUTTON_BAG, function (v) { ui.bag = v; if (ui.unlock.bag[v] === 1) cookiesManager.set("starve_bag", "" + v, 30); }, this.bag, this.unlock.bag ); var bookSelector = new CosmeticSelector( COSMETICS.BOOK, FIRST_BUTTON_BOOK, function (v) { ui.book = v; if (ui.unlock.book[v] === 1) cookiesManager.set("starve_book", "" + v, 30); }, this.book, this.unlock.book ); var deadSelector = new CosmeticSelector( COSMETICS.CRATE, FIRST_BUTTON_CRATE, function (v) { ui.dead = v; if (ui.unlock.dead[v] === 1) cookiesManager.set("starve_dead", "" + v, 30); }, this.dead, this.unlock.dead ); var crateSelector = new CosmeticSelector( COSMETICS.CRATE, FIRST_BUTTON_LOOT, function (v) { ui.crate = v; if (ui.unlock.crate[v] === 1) cookiesManager.set("starve_crate", "" + v, 30); }, this.crate, this.unlock.crate ); var accessorySelector = new CosmeticSelector( COSMETICS.ACCESSORY, FIRST_BUTTON_ACCESSORY, function (v) { ui.accessory = v; if (ui.unlock.accessory[v] === 1) cookiesManager.set("starve_accessory", "" + v, 30); }, this.accessory, this.unlock.accessory ); this.trigger_mousedown = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); for (var i = 0; i < _this.buttons.length; i++) { if (_this.buttons[i].info.active === __DISPLAY__) _this.buttons[i].trigger(_this.can, mouse.pos, MOUSE_DOWN); } }; this.trigger_mouseup = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); for (var i = 0; i < _this.buttons.length; i++) { var button = _this.buttons[i]; if (button.info.active === __DISPLAY__) { if (button.trigger(_this.can, mouse.pos, MOUSE_UP)) { button.info.callback(); return; } } } }; this.current_cursor = false; this.trigger_mousemove = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); var cursor = false; for (var i = 0; i < _this.buttons.length; i++) { if (_this.buttons[i].info.active === __DISPLAY__) cursor |= _this.buttons[i].trigger(_this.can, mouse.pos, MOUSE_MOVE); } // Set pointer or default cursor if (_this.current_cursor !== cursor) { _this.current_cursor = cursor; if (cursor) can.style["cursor"] = _this.cursor1; else can.style["cursor"] = _this.cursor0; } }; this.add_event_listener = function () { window.addEventListener("mousedown", this.trigger_mousedown, false); window.addEventListener("mouseup", this.trigger_mouseup, false); window.addEventListener("mousemove", this.trigger_mousemove, false); }; this.remove_event_listener = function () { window.removeEventListener("mousedown", this.trigger_mousedown, false); window.removeEventListener("mouseup", this.trigger_mouseup, false); window.removeEventListener("mousemove", this.trigger_mousemove, false); }; } } /* Game for display the game */ class Game { constructor(can, ctx) { /* WATCH OUT, I'M NOT SURE ABOUT THIS TRICK, IT MAY BE A SOURCE OF BUG * * That seem work for use this object in a event listener */ var _this = this; this.can = can; this.ctx = ctx; /* Edge does not provide image for cursor feature */ if (window.navigator.userAgent.indexOf("Edge") > -1) { this.cursor0 = "default"; this.cursor1 = "pointer"; } else { this.cursor0 = "url('img/cursor0.png'), default"; this.cursor1 = "url('img/cursor1.png'), pointer"; } /* Ui option */ this.show_ui = 1; this.show_clock = 1; this.show_recipe_book = 1; this.show_quest = 1; /* Team window */ this.team_box = { id: window.document.getElementById("team_box"), style: window.document.getElementById("team_box").style, update: function () { this.style.left = window.Math.floor(canw2 - 125) + "px"; this.style.top = "110px"; } }; /* Market */ this.market = { open: false, id: window.document.getElementById("shop_market"), style: window.document.getElementById("shop_market").style, items: [ [1, 3, INV_INFOS[ItemType.WOOD].img, INV_INFOS[ItemType.BERRY].img], [1, 4, INV_INFOS[ItemType.STONE].img, INV_INFOS[ItemType.PUMPKIN].img], [1, 6, INV_INFOS[ItemType.GOLD].img, INV_INFOS[ItemType.BREAD].img], [4, 1, INV_INFOS[ItemType.DIAMOND].img, INV_INFOS[ItemType.CARROT].img], [8, 1, INV_INFOS[ItemType.AMETHYST].img, INV_INFOS[ItemType.TOMATO].img], [16, 1, INV_INFOS[ItemType.REIDITE].img, INV_INFOS[ItemType.THORNBUSH].img], [10, 1, INV_INFOS[ItemType.PUMPKIN_SEED].img, INV_INFOS[ItemType.BREAD].img], [16, 1, INV_INFOS[ItemType.CARROT_SEED].img, INV_INFOS[ItemType.PUMPKIN].img], [20, 1, INV_INFOS[ItemType.TOMATO_SEED].img, INV_INFOS[ItemType.CARROT].img], [30, 1, INV_INFOS[ItemType.THORNBUSH_SEED].img, INV_INFOS[ItemType.TOMATO].img], [40, 1, INV_INFOS[ItemType.GARLIC_SEED].img, INV_INFOS[ItemType.THORNBUSH].img], [60, 1, INV_INFOS[ItemType.WATERMELON_SEED].img, INV_INFOS[ItemType.GARLIC].img] ], button: gui_create_button(60, 60, "", sprite[SPRITE.MARKET_BUTTON]), update: function () { this.style.left = window.Math.floor(canw2 - 450) + "px"; this.style.top = window.Math.floor(canh2 - 270) + "px"; }, select: function () { game.market.open = !game.market.open; if (game.market.open) { game.market.style.display = "flex"; } else game.market.style.display = "none"; }, quit: function () { game.market.style.display = "none"; game.market.open = false; }, }; this.market.id.innerHTML = ""; for (let i = 0; i < this.market.items.length; i++) { const [value, step, img_item, img_price] = this.market.items[i]; const item_image = sprite[img_item][0]; const item_price = sprite[img_price][0]; this.market.id.innerHTML += `
    BUY
    ${value}
    `; setTimeout(() => { document.getElementById("ore_number" + i).onchange = function() { document.getElementById("amount_price_market" + i).textContent = step === 1 ? document.getElementById("ore_number" + i).value * value : document.getElementById("ore_number" + i).value / step; } document.getElementById("buy_market_number" + i).onclick = function() { client.buy_market(document.getElementById("amount_price_market" + i).textContent, i); } }, 16); } this.market.id.innerHTML += `
    QUIT
    `; /* Enable only scrollbar by disabling the input thing */ window.document.querySelector("[type='number']").addEventListener("keypress", evt => { evt.preventDefault(); }); /* In game options */ this.options = { open: false, id: window.document.getElementById("option_in_game"), style: window.document.getElementById("option_in_game").style, agree: window.document.getElementById("agree_ing").style, cancel_agree: window.document.getElementById("cancel_agree_ing").style, quests_agree: window.document.getElementById("quest_agree_ing").style, feed_agree: window.document.getElementById("auto_feed_agree_ing").style, info_box_agree: window.document.getElementById("info_agree_ing").style, aliasing_agree: window.document.getElementById("pixelated_agree_ing").style, button: gui_create_button(60, 60, "", sprite[SPRITE.OPTION_BUTTON]), select_options: function () { game.options.open = !game.options.open; if (game.options.open) game.options.style.display = "inline-block"; else game.options.style.display = "none"; }, azerty: function () { ui.set_azerty(); }, qwerty: function () { ui.set_qwerty(); }, high: function () { ui.high_quality(); }, low: function () { ui.low_quality(); }, checkbox: function () { game.safe_delete.checkbox(); }, cancel_checkbox: function () { game.safe_cancel.checkbox(); }, quest_checkbox: function () { game.quests.checkbox(); }, feed_checkbox: function () { user.auto_feed.invert(); }, quit: function () { game.options.style.display = "none"; game.options.open = false; }, update: function () { this.style.left = window.Math.floor(canw2 - 235) + "px"; this.style.top = window.Math.floor(canh2 - 170) + "px"; } }; /* Safe delete */ this.safe_cancel = { open: false, activated: cookiesManager.get("starve_cancel") ? (cookiesManager.get("starve_cancel") === "0" ? 0 : 1) : 1, id: window.document.getElementById("cancel_sure_delete"), style: window.document.getElementById("cancel_sure_delete").style, agree: window.document.getElementById("cancel_agree").style, button: 0, i: 0, quit: function () { game.safe_cancel.style.display = "none"; game.safe_cancel.open = false; }, yes: function () { if (user.craft.crafting) client.cancel_crafting(); game.safe_cancel.quit(); }, checkbox: function () { if (!game.safe_cancel.activated) { cookiesManager.set("starve_cancel", "1"); game.safe_cancel.agree.display = "none"; game.options.cancel_agree.display = "inline-block"; } else { cookiesManager.set("starve_cancel", "0"); game.safe_cancel.agree.display = "inline-block"; game.options.cancel_agree.display = "none"; } game.safe_cancel.activated = !game.safe_cancel.activated; }, del: function () { if (!this.activated) this.yes(); else { this.style.display = "inline-block"; this.open = true; } }, update: function () { this.style.left = window.Math.floor(canw2 - 235) + "px"; this.style.top = window.Math.floor(canh2 - 130) + "px"; } }; /* Safe cancel delete buttons */ this.safe_cancel.agree.display = "none"; if (this.safe_cancel.activated) this.options.cancel_agree.display = "inline-block"; else this.options.cancel_agree.display = "none"; window.document.addEventListener( "cancel_sure_delete", function (e) { e.preventDefault(); }, false ); /* Aliasing */ this.aliasing = { activated: cookiesManager.get("starve_aliasing") ? (cookiesManager.get("starve_aliasing") === "0" ? 0 : 1) : 1, set_aliasing: function (val) { if (val) window.document.getElementById("game_canvas").style.imageRendering = "pixelated"; else window.document.getElementById("game_canvas").style.imageRendering = "auto"; }, checkbox: function () { if (game.aliasing.activated === 0) { cookiesManager.set("starve_aliasing", "1"); game.aliasing.set_aliasing(1); game.options.aliasing_agree.display = "inline-block"; } else { cookiesManager.set("starve_aliasing", "0"); game.aliasing.set_aliasing(0); game.options.aliasing_agree.display = "none"; } game.aliasing.activated = (game.aliasing.activated + 1) % 2; } }; this.aliasing.activated = 0 if (this.aliasing.activated === 1) this.options.aliasing_agree.display = "inline-block"; else { this.aliasing.set_aliasing(0); this.options.aliasing_agree.display = "none"; } window.document.getElementById("pixelated_case_agree_opt").addEventListener("mouseup", this.aliasing.checkbox, false); /* Info box on items */ this.info_box = { activated: cookiesManager.get("starve_info_box") ? (cookiesManager.get("starve_info_box") === "0" ? 0 : 1) : 1, display: 0, x: 0, y: 0, id: 0, craft: 0, checkbox: function () { if (game.info_box.activated === 0) { cookiesManager.set("starve_info_box", "0"); game.options.info_box_agree.display = "none"; } else { cookiesManager.set("starve_info_box", "1"); game.options.info_box_agree.display = "inline-block"; } game.info_box.activated = (game.info_box.activated + 1) % 2; }, trigger: function (on, button, craft) { if (on && this.activated) { this.display = 1; // if (craft === 0) this.id = button.id; // else this.id = RECIPES[button.id].id; this.x = button.info.translate.x + 80; this.y = button.info.translate.y; this.craft = craft; } return on; } }; if (this.info_box.activated === 1) this.options.info_box_agree.display = "inline-block"; else this.options.info_box_agree.display = "none"; window.document.getElementById("info_case_agree_opt").addEventListener("mouseup", this.info_box.checkbox, false); /* Scale ratio */ if (cookiesManager.get("starve_scale")) { ratio_opt = window.Number(cookiesManager.get("starve_scale")); window.document.getElementById("input_ratio").value = ratio_opt; eventManager.onResize(); } /* Update ratio */ this.change_ratio = function () { cookiesManager.set("starve_scale", "" + window.document.getElementById("input_ratio").value); ratio_opt = window.document.getElementById("input_ratio").value; eventManager.onResize(); }; window.document.getElementById("input_ratio").addEventListener("input", this.change_ratio, false); /* Safe delete */ this.safe_delete = { open: false, activated: cookiesManager.get("starve_safe") ? (cookiesManager.get("starve_safe") === "0" ? 0 : 1) : 1, id: window.document.getElementById("sure_delete"), style: window.document.getElementById("sure_delete").style, agree: window.document.getElementById("agree").style, button: 0, i: 0, quit: function () { game.safe_delete.style.display = "none"; game.safe_delete.open = false; }, all: function () { if (!user.build.wait) { if (user.craft.preview < 0 && user.craft.id < 0 && !user.ghost.enabled) client.delete_inv(game.safe_delete.button); game.safe_delete.quit(); } }, recycle: function () { if (user.craft.workbench && !user.build.wait) { if (user.craft.preview < 0 && user.craft.id < 0 && !user.ghost.enabled) client.recycle_inv(game.safe_delete.button); game.safe_delete.quit(); } }, one: function () { if (!user.build.wait) { if (user.craft.preview < 0 && user.craft.id < 0 && !user.ghost.enabled) client.delete_one_inv(game.safe_delete.button); game.safe_delete.quit(); } }, checkbox: function () { if (!game.safe_delete.activated) { cookiesManager.set("starve_safe", "1"); game.safe_delete.agree.display = "none"; game.options.agree.display = "inline-block"; } else { cookiesManager.set("starve_safe", "0"); game.safe_delete.agree.display = "inline-block"; game.options.agree.display = "none"; } game.safe_delete.activated = !game.safe_delete.activated; }, del: function (button) { this.button = button; window.document.getElementById("item_to_del").src = sprite[INV_INFOS[button].img][0]._src === undefined ? sprite[INV_INFOS[button].img][0].src : sprite[INV_INFOS[button].img][0]._src; if (INV_INFOS[button].recycle && !user.zombie && user.craft.workbench) window.document.getElementById("recycle_delete").style.display = "inline-block"; else window.document.getElementById("recycle_delete").style.display = "none"; if (!this.activated) this.all(); else { this.style.display = "inline-block"; this.open = true; } }, update: function () { this.style.left = window.Math.floor(canw2 - 235) + "px"; this.style.top = window.Math.floor(canh2 - 175) + "px"; } }; /* Safe delete buttons */ this.safe_delete.agree.display = "none"; if (this.safe_delete.activated) this.options.agree.display = "inline-block"; else this.options.agree.display = "none"; window.document.getElementById("one_delete").addEventListener("mouseup", this.safe_delete.one, false); window.document.getElementById("yes_delete").addEventListener("mouseup", this.safe_delete.all, false); window.document.getElementById("recycle_delete").addEventListener("mouseup", this.safe_delete.recycle, false); window.document.getElementById("no_delete").addEventListener("mouseup", this.safe_delete.quit, false); window.document.getElementById("case_agree").addEventListener("mouseup", this.safe_delete.checkbox, false); /* Shop window */ this.shop = { open: false, kit: -1, button: gui_create_button(60, 60, "", sprite[SPRITE.SHOP]), id: window.document.getElementById("shop_starterkit"), style: window.document.getElementById("shop_starterkit").style, update: function () { this.style.left = window.Math.floor(canw2 - 300) + "px"; this.style.top = window.Math.floor(canh2 - 215) + "px"; }, quit: function () { game.shop.open = false; game.shop.style.display = "none"; }, select: function () { game.shop.open = !game.shop.open; if (!game.shop.open) game.shop.style.display = "none"; else game.shop.style.display = "inline-block"; }, buy: function () { if (game.shop.kit >= 0) { client.choose_kit(game.shop.kit); game.shop.quit(); } }, init: function () { var price = user.shop.value; window.document.getElementById("points_bank").innerHTML = Utils.simplify_number(price) + " points"; for (var i = 0; i < KIT.length; i++) { if (KIT[i].price > price) window.document.getElementById("starter" + (i + 1)).style["opacity"] = "0.4"; else window.document.getElementById("starter" + (i + 1)).style["opacity"] = "1"; } for (i = 1; i < 13; i++) { window.document.getElementById("inv_shop" + i).src = "./img/empty-shop.png"; window.document.getElementById("amount_shop" + i).innerHTML = ""; } window.document.getElementById("buy_kit").style["opacity"] = "0.2"; }, get_starter: function () { if (this.id.length > 8) var id = window.Number(this.id.charAt(7) + this.id.charAt(8)); else var id = window.Number(this.id.charAt(7)); var s = KIT[id - 1]; if (user.shop.value >= s.price) { game.shop.kit = id; window.document.getElementById("buy_kit").style["opacity"] = "1"; } else { game.shop.kit = -1; window.document.getElementById("buy_kit").style["opacity"] = "0.2"; } s = s.items; for (var i = 1, j = 1; i < s.length + 1; i++) { if (s[i - 1][1] === ItemType.BAG) continue; window.document.getElementById("inv_shop" + j).style.display = "inline-block"; window.document.getElementById("inv_shop" + j).src = sprite[INV_INFOS[s[i - 1][1]].img][0]._src === undefined ? sprite[INV_INFOS[s[i - 1][1]].img][0].src : sprite[INV_INFOS[s[i - 1][1]].img][0]._src; window.document.getElementById("amount_shop" + j).innerHTML = "" + s[i - 1][0]; j++; } for (; j < 13; j++) { window.document.getElementById("inv_shop" + j).src = "./img/empty-shop.png"; window.document.getElementById("amount_shop" + j).innerHTML = ""; } } }; /* Craft list buttons */ window.document.getElementById("quit3").addEventListener("mouseup", this.shop.quit, false); window.document.getElementById("buy_kit").addEventListener("mouseup", this.shop.buy, false); for (var i = 1; i < 11; i++) window.document.getElementById("starter" + i).addEventListener("mouseup", this.shop.get_starter, false); /* Craft list window */ this.quests = { open: false, activated: cookiesManager.get("starve_quests") ? (cookiesManager.get("starve_quests") === "1" ? 1 : 0) : 0, button: gui_create_button(60, 60, "", sprite[SPRITE.QUEST_BUTTON]), id: window.document.getElementById("chronoquest"), style: window.document.getElementById("chronoquest").style, update: function () { this.style.left = window.Math.floor(canw2 - 420) + "px"; this.style.top = window.Math.floor(canh2 - 270) + "px"; }, quit: function () { game.quests.style.display = "none"; game.quests.open = false; }, select: function () { game.quests.open = !game.quests.open; if (!game.quests.open) game.quests.style.display = "none"; else game.quests.style.display = "inline-block"; }, list: [], reset: function () { for (var i = 0; i < QUESTS.length; i++) { this.list[i] = 1; window.document.getElementById("timeremain_" + i).style.display = "inline-block"; window.document.getElementById("time_finished_" + i).style.display = "none"; window.document.getElementById("claim_reward_" + i).style.display = "none"; } }, timer: 0, born: 0, update_chrono: function () { if (!game.quests.open) return; var now = new window.Date().getTime(); if (now - this.timer < 1000) return; this.timer = now; for (var i = 0; i < QUESTS.length; i++) { if (!game.quests.list[i]) continue; var t = QUESTS[i] - (now - world.clock.init + game.quests.born); if (t > 960000) { window.document.getElementById("timeremain_" + i).innerHTML = window.Math.floor(t / 480000) + " days"; } else if (t > 480000) { window.document.getElementById("timeremain_" + i).innerHTML = window.Math.floor(t / 480000) + " day"; } else if (t > 60000) { window.document.getElementById("timeremain_" + i).innerHTML = window.Math.floor(t / 60000) + " min"; } else window.document.getElementById("timeremain_" + i).innerHTML = window.Math.floor(t / 1000) + " sec"; } }, restore: function (l) { for (var i = 0; i < l.length; i++) { if (l[i] != 1) game.quests.modify_simple(i, l[i]); } }, modify_simple: function (id, type) { // Explorer and Sand worm quests bring a new bag place if (type === 3 && (id === 11 || id === 12)) { user.inv.update_bag_size(0, 1); game.update_inv_buttons(); } window.document.getElementById("timeremain_" + id).innerHTML = "      "; if (type > 1) { window.document.getElementById("time_finished_" + id).innerHTML = "SUCCEED"; window.document.getElementById("timeremain_" + id).style.display = "none"; } else if (type === 0) { window.document.getElementById("time_finished_" + id).innerHTML = "FAILED"; window.document.getElementById("timeremain_" + id).style.display = "none"; } if (type === 2) window.document.getElementById("claim_reward_" + id).style.display = "inline-block"; else window.document.getElementById("claim_reward_" + id).style.display = "none"; window.document.getElementById("time_finished_" + id).style.display = "inline"; game.quests.list[id] = 0; }, modify: function (id, type) { game.quests.modify_simple(id, type); if (game.quests.activated) { game.quests.open = true; game.quests.style.display = "inline-block"; } }, checkbox: function () { if (!game.quests.activated) { cookiesManager.set("starve_quests", "1"); game.options.quests_agree.display = "inline-block"; } else { cookiesManager.set("starve_quests", "0"); game.options.quests_agree.display = "none"; } game.quests.activated = !game.quests.activated; }, claim: function () { var n = window.Number(this.id.charAt(13)); var m = window.Number(this.id.charAt(14)); if (this.id.charAt(14) !== "" && m >= 0 && m <= 9) n = n * 10 + m; client.claim_quest_reward(n); } }; /* Quests buttons */ if (this.quests.activated) this.options.quests_agree.display = "inline-block"; else this.options.quests_agree.display = "none"; window.document.getElementById("quit_chronoquest").addEventListener("mouseup", this.quests.quit, false); for (var i = 0; i < QUESTS.length; i++) window.document.getElementById("claim_reward_" + i).addEventListener("mouseup", this.quests.claim, false); /* Craft list window */ this.craft_list = { open: false, button: gui_create_button(60, 60, "", sprite[SPRITE.RECIPE_BUTTON]), list: { id: window.document.getElementById("recipe_craft"), style: window.document.getElementById("recipe_craft").style, recipes: [], category: 0, update: function () { this.style.left = window.Math.floor(canw2 - 335) + "px"; this.style.top = window.Math.floor(canh2 - 215) + "px"; }, quit: function () { window.document.getElementById("recipe_craft").style.display = "none"; game.craft_list.open = false; }, previous: function () { window.document.getElementById("recipe_craft").style.display = "none"; window.document.getElementById("home_craft").style.display = "inline-block"; }, get_recipe: function (i) { var r = this.recipes[i]; if (r.o) window.document.getElementById("watercraft").style.display = "inline-block"; else window.document.getElementById("watercraft").style.display = "none"; if (r.f) window.document.getElementById("firecraft").style.display = "inline-block"; else window.document.getElementById("firecraft").style.display = "none"; if (r.w) window.document.getElementById("workcraft").style.display = "inline-block"; else window.document.getElementById("workcraft").style.display = "none"; if (r.e) window.document.getElementById("wellcraft").style.display = "inline-block"; else window.document.getElementById("wellcraft").style.display = "none"; var r = r.r; for (var i = 0, j = 1; i < r.length; i++) { window.document.getElementById("inv" + j).style.display = "inline-block"; window.document.getElementById("inv" + j).src = sprite[INV_INFOS[r[i][0]].img][0]._src === undefined ? sprite[INV_INFOS[r[i][0]].img][0].src : sprite[INV_INFOS[r[i][0]].img][0]._src; window.document.getElementById("numb" + j).innerHTML = "" + r[i][1]; j++; } for (; j < 6; j++) { window.document.getElementById("inv" + j).style.display = "none"; window.document.getElementById("numb" + j).innerHTML = ""; } }, select: function (category) { this.category = category; window.document.getElementById("home_craft").style.display = "none"; window.document.getElementById("workcraft").style.display = "none"; window.document.getElementById("firecraft").style.display = "none"; window.document.getElementById("watercraft").style.display = "none"; window.document.getElementById("wellcraft").style.display = "none"; window.document.getElementById("recipe_craft").style.display = "inline-block"; window.document.getElementById("inv1").style.display = "none"; window.document.getElementById("inv2").style.display = "none"; window.document.getElementById("inv3").style.display = "none"; window.document.getElementById("inv4").style.display = "none"; window.document.getElementById("inv5").style.display = "none"; window.document.getElementById("numb1").innerHTML = ""; window.document.getElementById("numb2").innerHTML = ""; window.document.getElementById("numb3").innerHTML = ""; window.document.getElementById("numb4").innerHTML = ""; window.document.getElementById("numb5").innerHTML = ""; for (var i = 0, j = 0; i < RECIPES.length; i++) { var r = RECIPES[i]; if (!r || !r.r) continue; if (category === r.t) { this.recipes[j] = r; j++; if(category === 1 && j == 9){ sprite[INV_INFOS[9].img][0].src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAAtCAYAAAAOYyOGAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAkASURBVGhDzZrbbxPpGcafOdjj8dk5QggBEhJCgCywK+hSbVVV2sv9n3rdv6Dq9Wr3qt2VVu32sKuKdtmCFhAkQEJISDgF4jgHnw/jmenzOk4yMcjEASc80pd8Hk/s9+f3+FlRTv/hTy52yIHiVgE3DVUpQlEcXmu45cCkwHVVOK7JbQyuovOauvGURw1XqgRa58VX0NQcgWxe+1CARG7NJrFNbBRbxeZGeaDEQ+KdTZgPW2JjzVbaLLZ7tQWlwNq4qeGGAxGDQ3XeHiFi64bNVv3Khrah7LU60MGGm+K66Fpdx/j9GfQmV2hXsw+Z4SgRRtu92obSyvXdwSqcL+Di3Qf4/MefMXrjDqrzz+EUm9vWaLsn/A4+7IyKheG5p7gwOYPudBaJqceoXLuNcnK1fseb1Wi7p1DsnyRfBCBQriCULyKazaM7tYaRRwv41a17GMnk0M37ustl6NxX0xmW8o2/3Y22+pSO+dqFdktypn9xGeP3phHO5REoWfBXLRhlCzEC9BdLGOU9aa6rioI/hiNY/OQsYlcuQNW1+qu8ripO1Hf77CkB6ljL4NKtCVz5ZRIX7s1ibHYBwwsvMPAyiV5CHqUXEwyoAO+P8eOO2TacXBHg791qX6EMhtvw3BOMMsz81So0lyWZoAKrcx2iZw4pNIrL5D7E6pYgjEtYmx7crfYNSgw/vJTChYlpRJlHXpEBHYQY4PJzifxcEXqq1yEUK6Jd+AChpCiMs6oNLCZZKLarlSCEuYYJE6wDiQw+Y/JhJ8NRr1Rhs5i4TXvWtvYFSqMxp6cfY3xqFnpDbnA0xXFFJdg2kIj+2QBmiJqWhWquwF67uxLYfijacfzJC/zm2i2EG0JIZuzD9E4Prfc4iUBAkgCv+PuppqFIb0kDdndZLNoOJSPP5ZsTOLSyxqKwM3ziJDnCpXuIZOR7xR9T3P9EoH8bAeQNP9Qg66GXvInaChUqFHF26hFGOSVonjwSBRlcQzRSqtymbAIl6doZrmsE+tYM4lk4hODYEEIjx6H6ffU7m6ttUHrVxsCzVxjjqOO3dp55DK4R1m3x1KZshtsS1wMuAfozgV4SKHxuGJHxEejhYP3Ot6ttULF0Duc4afctr+zwkpTqEywMPd5QkpDjmubmPwIUMLEYCsI8PYjIWQJFpT7uXm2B0uilk/NPcIqN1s8Zb1PyZr2E6SPPFpIA8ccjrv8R6Dt66EkkDHP0BKIXxwgUYip5PoBdqC1Q/YtL+Ozn27Um6zUnSuNkatgsDFLLlgWInryhaviGHnoqHho5huj509BaCDmv9gTlsjpJI3xT20isZ/C7qzfQsyrH7G0FiCcTQ4y/BUn+NMUXeMjNf3UdXwWDWCCQ/9RxRM6dqoVca/7ZVstQDkMrO72IteuzqKSyfLydL0H2oUs3JzH47OUOg2R/lIWhmzutTrTCD+aRFAVVxV/EQ2YABitc7OIZ+DqILgPgHtUylF2oIPfgOVJXp5H8/m5tb+fLUAl3cv4Zzk7PwfBUO3kD8dDRWtjxAYFS7FcPuW4Q6LtAAPP0kHHiCGKfnIEeo4feAUjUGhQNsosVVDMlHvJKcB4vIvWvSaz89BChmWcYm3iIBE+sMrxKo5QE76Lhx7ikw8jlVb7IDDc3pSiwsc6wbBsnB5C4/BG0WGTjfd5RrYcfD3UuD3SmY6HbySOUSSP/yxyW/3EX2fkkbHpMY47EOjqQCIdxiEByNhKgNQLNcXOH1742TUzRQ9rxfvahUeiJ6J5zqFEtQbE8wOHELFA6HBiujQ6niM5KBivpIn4oG1jymTgyOIihsTF0RSI8E23klADNEkhC7iuW7UcMO2WgD5Hzp+DvirdctptpD+FnwSGUxgcKl0a4sFtBF70WViro7ezE0eFheobPlcrw87cczWdYGAToW4bctGFAO9KL+JXzMHq7oGgtB0xTtfZq/DC1ALODw+WqHkJO8cu3bsIKH73WgypCqoPnC0/wzZ0p/HO9yB6kYJJQD5n8f/MbuM+QU/t60PHZx/B30kPvWBTeJK378y9+LxsV8r10c0mIaCGW3s4wLOZWtuDA5hQqfqsoOo4pNsJWBdd5wv2yqOF7N4QpVwWPd/grw22SzdQ91ofYpXPw93S+15BzkKjvWoQSqbrKshtkcwygvJpDPsvC4SqwOM+tKz7MWizXBC3ybSzavKAYuKeYWPD5ofR3c1I4hQA99b5Dzgu1t1fmJ+zS8Gq+wipY4ZG7gA63iDXCzXAGzzMkdXonyufiLCRlx0ax5IeVYQYWWW7k0NRGtQwlBlkrWaRvz0PjKCRAAeaSnzklRUPCsFRDknHI5fVqDbjLzqP8fBXJH+4jM7GAKs9a7YJrDYoJb60XsH5rHpW5JcStQq2si0qEKTPEnEgIKTOGVYacFJKMEsAa9wU+r6j0bibLEese0tcnUFlhyLeBqyUou1RFbuoFCg9eIFLKIcRSLirTR2nNhHq4E4lPTyI4PoBcPI6UFsKaHkDGr6Ni8s1M9reQBcUuoJJchZ3Jken9U+3+a2felZ9fxvLf78BIptDNcFJ50ebPFdVEqbMD8V+PInLmCOlt5Odeci6kR5eXJWZ5FNfg41zn607AZAXUObT6OImrPvn65d3l/dp511COZSP1433kb8ygx87BdNmEmTVphlc2HEXo40HEL5+ELyxDETl4NKkw58ovlvjHDiHi8CUibAnsU02+E9+r9vZdOpNayrDKs4N8CjaBJGfyZgiB4T5Ex4/Bxx62KbnX6ErwbDSCyEej9M5heirSFqBG7RpK8Wkw+zt4CowwT4JY0YJYNxhOQ4fZTIcIwAm7sZfyscDV1ntstG/TFhRbSVPJOBMc6kHit2PQzw3C5gnVvMCQ+3QEgUPx14H2UY22b+WUm5tnPtSuNZX0FqfMSZ15It6TRN9HJ7xRVo4g4TfklJUn8ev/kvCaxGOa6WNp5qTNUn3QQGKz2O7VFpTrajVip3rAVrYgsVVsFtu92oJSDBNWQUEly/Da+W8JH6TERrFVbBbbvdqC0kNRiS3OZAqKKQVlTjDV8oZ7JRE/iEVbxCaxTWwUW8Xmmu1bAv4PTfIQolzKAn0AAAAASUVORK5CYII=" } window.document.getElementById("img_" + j).item = i; window.document.getElementById("img_" + j).style.display = "inline-block"; window.document.getElementById("img_" + j).src = sprite[INV_INFOS[i].img][0]._src === undefined ? sprite[INV_INFOS[i].img][0].src : sprite[INV_INFOS[i].img][0]._src; } } for (j++; j < 49; j++) window.document.getElementById("img_" + j).style.display = "none"; } }, home: { id: window.document.getElementById("home_craft"), style: window.document.getElementById("home_craft").style, update: function () { this.style.left = window.Math.floor(canw2 - 285) + "px"; this.style.top = window.Math.floor(canh2 - 170) + "px"; }, quit: function () { window.document.getElementById("home_craft").style.display = "none"; game.craft_list.open = false; } }, select_book: function () { this.open = !this.open; if (!this.open) { window.document.getElementById("home_craft").style.display = "none"; window.document.getElementById("recipe_craft").style.display = "none"; } else window.document.getElementById("home_craft").style.display = "inline-block"; } }; for (let i = 1; i < 49; i++) { window.document.getElementById("img_" + i).addEventListener( "mousedown", function () { game.craft_list.list.get_recipe(i - 1); if (keyboard.keys[16]) { client.send_command("g $id " + window.document.getElementById("img_" + i).item + (keyboard.keys[17] ? " 255" : "")); } }, false ); } /* Ui part */ this.minimap = { translate: { x: 0, y: 0 }, marker: { x: -1, y: -1 }, players: [], focus: function (mouse) { var y = this.translate.y + (user.inv.can_select.length > 0 ? -120 : -50); if (mouse.x > this.translate.x && mouse.x < this.translate.x + /*sprite[SPRITE.MINIMAP][0].width*/ 193 && mouse.y > y && mouse.y < y + /*sprite[SPRITE.MINIMAP][0].height*/ 193) { this.marker.x = mouse.x - this.translate.x; this.marker.y = mouse.y - y; } } }; this.leaderboard = { translate: { x: 0, y: 0 }, img: sprite[SPRITE.LEADERBOARD], can: window.document.createElement("canvas") }; this.leaderboard.can.width = this.leaderboard.img.width; this.leaderboard.can.height = this.leaderboard.img.height; this.leaderboard.ctx = this.leaderboard.can.getContext("2d"); this.gauges = { translate: { x: 0, y: 0 }, img: sprite[SPRITE.GAUGES], draw: draw_gauges, y: 0 }; this.leave_team = function () { var div = window.document.getElementById("team_box"); div.innerHTML = ""; div.innerHTML += '
    ' + world.players[user.team[0]].nickname.replaceAll("<", "< "); + "
    "; } div.innerHTML += '
    LEAVE
    '; div.style.display = "inline-block"; }; this.show_team = function () { let div = window.document.getElementById("team_box"); div.innerHTML = ""; div.innerHTML += '
    ' + world.players[user.team[0]].nickname.replaceAll("<", "< "); + "
    "; } div.innerHTML += ""; div.style.display = "inline-block"; }; this.manage_team = function () { let div = window.document.getElementById("team_box"); div.innerHTML = ""; div.style.display = "inline-block"; div.innerHTML += '
    ' + world.players[user.team[0]].nickname.replaceAll("<", "< "); + "
    ${world.players[user.team[i]].nickname.replaceAll("<", "< ")}
    `; setTimeout(() => { window.document.getElementById("eject_member" + i).onclick = function() { client.kick_team(i); } }, 100); } if (user.totem.lock === 0) div.innerHTML += '
    LOCK
    '; else div.innerHTML += '
    UNLOCK
    '; }; this.team_buttons = []; this.team_buttons[CLIENT.TEAM_LEAVE] = { button: gui_create_button(60, 60, "", sprite[SPRITE.TEAM_BUTTON]), action: this.leave_team }; this.team_buttons[CLIENT.TEAM_JOIN] = { button: gui_create_button(60, 60, "", sprite[SPRITE.TEAM_BUTTON]), action: client.join_team }; this.team_buttons[CLIENT.TEAM_MANAGE] = { button: gui_create_button(60, 60, "", sprite[SPRITE.MANAGE_TEAM_BUTTON]), action: this.manage_team }; this.team_buttons[CLIENT.TEAM_SHOW] = { button: gui_create_button(60, 60, "", sprite[SPRITE.SHOW_TEAM_BUTTON]), action: this.show_team }; this.team_buttons[CLIENT.TEAM_FULL] = { button: gui_create_button(60, 60, "", sprite[SPRITE.FULL_TEAM_BUTTON]), action: function () { } }; this.team_buttons_id = -1; this.bread_oven_wood_button = gui_create_button(60, 60, "", sprite[SPRITE.BREAD_OVEN_WOOD]); this.bread_oven_bread_button = gui_create_button(60, 60, "", sprite[SPRITE.BREAD_OVEN_BREAD]); this.bread_oven_flour_button = gui_create_button(60, 60, "", sprite[SPRITE.WINDMILL_FLOUR]); this.windmill_wheat_button = gui_create_button(60, 60, "", sprite[SPRITE.WINDMILL_WHEAT_SEED]); this.windmill_flour_button = gui_create_button(60, 60, "", sprite[SPRITE.WINDMILL_FLOUR]); this.extractor_wood_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD]); this.extractor_stone_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE]); this.extractor_gold_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD]); this.extractor_diamond_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND]); this.extractor_amethyst_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST]); this.extractor_reidite_button = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE]); this.furnace_button = gui_create_button(60, 60, "", sprite[SPRITE.FURNACE_BUTTON]); this.chest_padlock = gui_create_button(60, 60, "", sprite[SPRITE.PADLOCK]); this.chest_lockpick = gui_create_button(60, 60, "", sprite[SPRITE.KEY]); this.chest_locked = gui_create_button(60, 60, "", sprite[SPRITE.LOCKED]); this.resurrection = gui_create_button(120, 120, "", sprite[ItemType.DRAGON_HEART]); this.resurrection.info.translate.x = 10; this.resurrection.info.translate.y = 10; this.chest_buttons = []; this.chest_buttons[ItemType.STONE_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SWORD], 3); this.chest_buttons[ItemType.STONE_SWORD].id = ItemType.STONE_SWORD; this.chest_buttons[ItemType.STONE_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK], 3); this.chest_buttons[ItemType.STONE_PICK].id = ItemType.STONE_PICK; this.chest_buttons[ItemType.STONE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE], 3); this.chest_buttons[ItemType.STONE].id = ItemType.STONE; this.chest_buttons[ItemType.WOOD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD], 3); this.chest_buttons[ItemType.WOOD].id = ItemType.WOOD; this.chest_buttons[ItemType.BERRY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PLANT], 3); this.chest_buttons[ItemType.BERRY].id = ItemType.BERRY; this.chest_buttons[ItemType.CACTUS] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CACTUS], 3); this.chest_buttons[ItemType.CACTUS].id = ItemType.CACTUS; this.chest_buttons[ItemType.GOLD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD], 3); this.chest_buttons[ItemType.GOLD].id = ItemType.GOLD; this.chest_buttons[ItemType.DIAMOND] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND], 3); this.chest_buttons[ItemType.DIAMOND].id = ItemType.DIAMOND; this.chest_buttons[ItemType.GOLD_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK_GOLD], 3); this.chest_buttons[ItemType.GOLD_PICK].id = ItemType.GOLD_PICK; this.chest_buttons[ItemType.DIAMOND_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK_DIAMOND], 3); this.chest_buttons[ItemType.DIAMOND_PICK].id = ItemType.DIAMOND_PICK; this.chest_buttons[ItemType.GOLD_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SWORD_GOLD], 3); this.chest_buttons[ItemType.GOLD_SWORD].id = ItemType.GOLD_SWORD; this.chest_buttons[ItemType.WOOD_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SWORD_WOOD], 3); this.chest_buttons[ItemType.WOOD_SWORD].id = ItemType.WOOD_SWORD; this.chest_buttons[ItemType.DIAMOND_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SWORD_DIAMOND], 3); this.chest_buttons[ItemType.DIAMOND_SWORD].id = ItemType.DIAMOND_SWORD; this.chest_buttons[ItemType.FIRE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FIRE], 3); this.chest_buttons[ItemType.FIRE].id = ItemType.FIRE; this.chest_buttons[ItemType.WORKBENCH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WORKBENCH], 3); this.chest_buttons[ItemType.WORKBENCH].id = ItemType.WORKBENCH; this.chest_buttons[ItemType.BERRY_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SEED], 3); this.chest_buttons[ItemType.BERRY_SEED].id = ItemType.BERRY_SEED; this.chest_buttons[ItemType.WOOD_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WALL], 3); this.chest_buttons[ItemType.WOOD_WALL].id = ItemType.WOOD_WALL; this.chest_buttons[ItemType.WOOD_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SPIKE], 3); this.chest_buttons[ItemType.WOOD_SPIKE].id = ItemType.WOOD_SPIKE; this.chest_buttons[ItemType.WOOD_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK_WOOD], 3); this.chest_buttons[ItemType.WOOD_PICK].id = ItemType.WOOD_PICK; this.chest_buttons[ItemType.COOKED_MEAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_COOKED_MEAT], 3); this.chest_buttons[ItemType.COOKED_MEAT].id = ItemType.COOKED_MEAT; this.chest_buttons[ItemType.MEAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_MEAT], 3); this.chest_buttons[ItemType.MEAT].id = ItemType.MEAT; this.chest_buttons[ItemType.BIG_FIRE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BIG_FIRE], 3); this.chest_buttons[ItemType.BIG_FIRE].id = ItemType.BIG_FIRE; this.chest_buttons[ItemType.BANDAGE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BANDAGE], 3); this.chest_buttons[ItemType.BANDAGE].id = ItemType.BANDAGE; this.chest_buttons[ItemType.CORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CORD], 3); this.chest_buttons[ItemType.CORD].id = ItemType.CORD; this.chest_buttons[ItemType.STONE_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_WALL], 3); this.chest_buttons[ItemType.STONE_WALL].id = ItemType.STONE_WALL; this.chest_buttons[ItemType.GOLD_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_WALL], 3); this.chest_buttons[ItemType.GOLD_WALL].id = ItemType.GOLD_WALL; this.chest_buttons[ItemType.DIAMOND_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_WALL], 3); this.chest_buttons[ItemType.DIAMOND_WALL].id = ItemType.DIAMOND_WALL; this.chest_buttons[ItemType.WOOD_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DOOR_WOOD_CLOSE], 3); this.chest_buttons[ItemType.WOOD_DOOR].id = ItemType.WOOD_DOOR; this.chest_buttons[ItemType.CHEST] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CHEST], 3); this.chest_buttons[ItemType.CHEST].id = ItemType.CHEST; this.chest_buttons[ItemType.STONE_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_SPIKE], 3); this.chest_buttons[ItemType.STONE_SPIKE].id = ItemType.STONE_SPIKE; this.chest_buttons[ItemType.GOLD_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_SPIKE], 3); this.chest_buttons[ItemType.GOLD_SPIKE].id = ItemType.GOLD_SPIKE; this.chest_buttons[ItemType.DIAMOND_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_SPIKE], 3); this.chest_buttons[ItemType.DIAMOND_SPIKE].id = ItemType.DIAMOND_SPIKE; this.chest_buttons[ItemType.RABBIT_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR], 3); this.chest_buttons[ItemType.RABBIT_FUR].id = ItemType.RABBIT_FUR; this.chest_buttons[ItemType.BOAR_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR_BOAR], 3); this.chest_buttons[ItemType.BOAR_FUR].id = ItemType.BOAR_FUR; this.chest_buttons[ItemType.WOLF_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR_WOLF], 3); this.chest_buttons[ItemType.WOLF_FUR].id = ItemType.WOLF_FUR; this.chest_buttons[ItemType.PENGUIN_FEATHER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PENGUIN_FEATHER], 3); this.chest_buttons[ItemType.PENGUIN_FEATHER].id = ItemType.PENGUIN_FEATHER; this.chest_buttons[ItemType.HAWK_FEATHER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAWK_FEATHER], 3); this.chest_buttons[ItemType.HAWK_FEATHER].id = ItemType.HAWK_FEATHER; this.chest_buttons[ItemType.VULTURE_FEATHER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_VULTURE_FEATHER], 3); this.chest_buttons[ItemType.VULTURE_FEATHER].id = ItemType.VULTURE_FEATHER; this.chest_buttons[ItemType.EMERALD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EMERALD], 3); this.chest_buttons[ItemType.EMERALD].id = ItemType.EMERALD; this.chest_buttons[ItemType.EARMUFFS] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EARMUFFS], 3); this.chest_buttons[ItemType.EARMUFFS].id = ItemType.EARMUFFS; this.chest_buttons[ItemType.STONE_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DOOR_STONE_CLOSE], 3); this.chest_buttons[ItemType.STONE_DOOR].id = ItemType.STONE_DOOR; this.chest_buttons[ItemType.GOLD_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DOOR_GOLD_CLOSE], 3); this.chest_buttons[ItemType.GOLD_DOOR].id = ItemType.GOLD_DOOR; this.chest_buttons[ItemType.DIAMOND_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DOOR_DIAMOND_CLOSE], 3); this.chest_buttons[ItemType.DIAMOND_DOOR].id = ItemType.DIAMOND_DOOR; this.chest_buttons[ItemType.COAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_COAT], 3); this.chest_buttons[ItemType.COAT].id = ItemType.COAT; this.chest_buttons[ItemType.WOOD_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_SPEAR], 3); this.chest_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.chest_buttons[ItemType.STONE_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SPEAR], 3); this.chest_buttons[ItemType.STONE_SPEAR].id = ItemType.STONE_SPEAR; this.chest_buttons[ItemType.GOLD_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_SPEAR], 3); this.chest_buttons[ItemType.GOLD_SPEAR].id = ItemType.GOLD_SPEAR; this.chest_buttons[ItemType.DIAMOND_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_SPEAR], 3); this.chest_buttons[ItemType.DIAMOND_SPEAR].id = ItemType.DIAMOND_SPEAR; this.chest_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_SPEAR], 3); this.chest_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.chest_buttons[ItemType.FURNACE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FURNACE], 3); this.chest_buttons[ItemType.FURNACE].id = ItemType.FURNACE; this.chest_buttons[ItemType.EXPLORER_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EXPLORER_HAT], 3); this.chest_buttons[ItemType.EXPLORER_HAT].id = ItemType.EXPLORER_HAT; this.chest_buttons[ItemType.PIRATE_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PIRATE_HAT], 3); this.chest_buttons[ItemType.PIRATE_HAT].id = ItemType.PIRATE_HAT; this.chest_buttons[ItemType.FLOWER_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FLOWER_HAT], 3); this.chest_buttons[ItemType.FLOWER_HAT].id = ItemType.FLOWER_HAT; this.chest_buttons[ItemType.FUR_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR_HAT], 3); this.chest_buttons[ItemType.FUR_HAT].id = ItemType.FUR_HAT; this.chest_buttons[ItemType.TURBAN1] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_TURBAN1], 3); this.chest_buttons[ItemType.TURBAN1].id = ItemType.TURBAN1; this.chest_buttons[ItemType.TURBAN2] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_TURBAN2], 3); this.chest_buttons[ItemType.TURBAN2].id = ItemType.TURBAN2; this.chest_buttons[ItemType.WOOD_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_ARROW], 3); this.chest_buttons[ItemType.WOOD_ARROW].id = ItemType.WOOD_ARROW; this.chest_buttons[ItemType.WOOD_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_BOW], 3); this.chest_buttons[ItemType.WOOD_BOW].id = ItemType.WOOD_BOW; this.chest_buttons[ItemType.WOOD_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_SHIELD], 3); this.chest_buttons[ItemType.WOOD_SHIELD].id = ItemType.WOOD_SHIELD; this.chest_buttons[ItemType.STONE_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_ARROW], 3); this.chest_buttons[ItemType.STONE_ARROW].id = ItemType.STONE_ARROW; this.chest_buttons[ItemType.STONE_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_BOW], 3); this.chest_buttons[ItemType.STONE_BOW].id = ItemType.STONE_BOW; this.chest_buttons[ItemType.STONE_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_SHIELD], 3); this.chest_buttons[ItemType.STONE_SHIELD].id = ItemType.STONE_SHIELD; this.chest_buttons[ItemType.GOLD_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_ARROW], 3); this.chest_buttons[ItemType.GOLD_ARROW].id = ItemType.GOLD_ARROW; this.chest_buttons[ItemType.GOLD_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_BOW], 3); this.chest_buttons[ItemType.GOLD_BOW].id = ItemType.GOLD_BOW; this.chest_buttons[ItemType.GOLD_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_SHIELD], 3); this.chest_buttons[ItemType.GOLD_SHIELD].id = ItemType.GOLD_SHIELD; this.chest_buttons[ItemType.DIAMOND_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_ARROW], 3); this.chest_buttons[ItemType.DIAMOND_ARROW].id = ItemType.DIAMOND_ARROW; this.chest_buttons[ItemType.DIAMOND_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_BOW], 3); this.chest_buttons[ItemType.DIAMOND_BOW].id = ItemType.DIAMOND_BOW; this.chest_buttons[ItemType.DIAMOND_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_SHIELD], 3); this.chest_buttons[ItemType.DIAMOND_SHIELD].id = ItemType.DIAMOND_SHIELD; this.chest_buttons[ItemType.AMETHYST_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_ARROW], 3); this.chest_buttons[ItemType.AMETHYST_ARROW].id = ItemType.AMETHYST_ARROW; this.chest_buttons[ItemType.AMETHYST_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_BOW], 3); this.chest_buttons[ItemType.AMETHYST_BOW].id = ItemType.AMETHYST_BOW; this.chest_buttons[ItemType.AMETHYST_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_SHIELD], 3); this.chest_buttons[ItemType.AMETHYST_SHIELD].id = ItemType.AMETHYST_SHIELD; this.chest_buttons[ItemType.REIDITE_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_ARROW], 3); this.chest_buttons[ItemType.REIDITE_ARROW].id = ItemType.REIDITE_ARROW; this.chest_buttons[ItemType.REIDITE_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_BOW], 3); this.chest_buttons[ItemType.REIDITE_BOW].id = ItemType.REIDITE_BOW; this.chest_buttons[ItemType.REIDITE_SHIELD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_SHIELD], 3); this.chest_buttons[ItemType.REIDITE_SHIELD].id = ItemType.REIDITE_SHIELD; this.chest_buttons[ItemType.DRAGON_ARROW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_ARROW], 3); this.chest_buttons[ItemType.DRAGON_ARROW].id = ItemType.DRAGON_ARROW; this.chest_buttons[ItemType.DRAGON_BOW] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_BOW], 3); this.chest_buttons[ItemType.DRAGON_BOW].id = ItemType.DRAGON_BOW; this.chest_buttons[ItemType.WOOD_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_HELMET], 3); this.chest_buttons[ItemType.WOOD_HELMET].id = ItemType.WOOD_HELMET; this.chest_buttons[ItemType.STONE_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_HELMET], 3); this.chest_buttons[ItemType.STONE_HELMET].id = ItemType.STONE_HELMET; this.chest_buttons[ItemType.GOLD_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_HELMET], 3); this.chest_buttons[ItemType.GOLD_HELMET].id = ItemType.GOLD_HELMET; this.chest_buttons[ItemType.DIAMOND_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_HELMET], 3); this.chest_buttons[ItemType.DIAMOND_HELMET].id = ItemType.DIAMOND_HELMET; this.chest_buttons[ItemType.BOOK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BOOK], 3); this.chest_buttons[ItemType.BOOK].id = ItemType.BOOK; this.chest_buttons[ItemType.PAPER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PAPER], 3); this.chest_buttons[ItemType.PAPER].id = ItemType.PAPER; this.chest_buttons[ItemType.BAG] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BAG], 3); this.chest_buttons[ItemType.BAG].id = ItemType.BAG; this.chest_buttons[ItemType.AMETHYST] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST].id = ItemType.AMETHYST; this.chest_buttons[ItemType.AMETHYST_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SWORD_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST_SWORD].id = ItemType.AMETHYST_SWORD; this.chest_buttons[ItemType.PIRATE_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PIRATE_SWORD], 3); this.chest_buttons[ItemType.PIRATE_SWORD].id = ItemType.PIRATE_SWORD; this.chest_buttons[ItemType.AMETHYST_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST_PICK].id = ItemType.AMETHYST_PICK; this.chest_buttons[ItemType.REIDITE_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PICK_REIDITE], 3); this.chest_buttons[ItemType.REIDITE_PICK].id = ItemType.REIDITE_PICK; this.chest_buttons[ItemType.AMETHYST_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_SPEAR], 3); this.chest_buttons[ItemType.AMETHYST_SPEAR].id = ItemType.AMETHYST_SPEAR; this.chest_buttons[ItemType.STONE_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAMMER], 3); this.chest_buttons[ItemType.STONE_HAMMER].id = ItemType.STONE_HAMMER; this.chest_buttons[ItemType.GOLD_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAMMER_GOLD], 3); this.chest_buttons[ItemType.GOLD_HAMMER].id = ItemType.GOLD_HAMMER; this.chest_buttons[ItemType.DIAMOND_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAMMER_DIAMOND], 3); this.chest_buttons[ItemType.DIAMOND_HAMMER].id = ItemType.DIAMOND_HAMMER; this.chest_buttons[ItemType.AMETHYST_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAMMER_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST_HAMMER].id = ItemType.AMETHYST_HAMMER; this.chest_buttons[ItemType.REIDITE_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAMMER_REIDITE], 3); this.chest_buttons[ItemType.REIDITE_HAMMER].id = ItemType.REIDITE_HAMMER; this.chest_buttons[ItemType.AMETHYST_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_WALL], 3); this.chest_buttons[ItemType.AMETHYST_WALL].id = ItemType.AMETHYST_WALL; this.chest_buttons[ItemType.AMETHYST_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_SPIKE], 3); this.chest_buttons[ItemType.AMETHYST_SPIKE].id = ItemType.AMETHYST_SPIKE; this.chest_buttons[ItemType.AMETHYST_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DOOR_AMETHYST_CLOSE], 3); this.chest_buttons[ItemType.AMETHYST_DOOR].id = ItemType.AMETHYST_DOOR; this.chest_buttons[ItemType.CAP_SCARF] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CAP_SCARF], 3); this.chest_buttons[ItemType.CAP_SCARF].id = ItemType.CAP_SCARF; this.chest_buttons[ItemType.WINTER_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR_WINTER], 3); this.chest_buttons[ItemType.WINTER_FUR].id = ItemType.WINTER_FUR; this.chest_buttons[ItemType.MAMMOTH_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FUR_MAMMOTH], 3); this.chest_buttons[ItemType.MAMMOTH_FUR].id = ItemType.MAMMOTH_FUR; this.chest_buttons[ItemType.DIAMOND_CORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BLUE_CORD], 3); this.chest_buttons[ItemType.DIAMOND_CORD].id = ItemType.DIAMOND_CORD; this.chest_buttons[ItemType.LOCK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LOCK], 3); this.chest_buttons[ItemType.LOCK].id = ItemType.LOCK; this.chest_buttons[ItemType.DRAGON_HEART] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_HEART], 3); this.chest_buttons[ItemType.DRAGON_HEART].id = ItemType.DRAGON_HEART; this.chest_buttons[ItemType.LAVA_HEART] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_HEART], 3); this.chest_buttons[ItemType.LAVA_HEART].id = ItemType.LAVA_HEART; this.chest_buttons[ItemType.RESURRECTION] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_RESURRECTION], 3); this.chest_buttons[ItemType.RESURRECTION].id = ItemType.RESURRECTION; this.chest_buttons[ItemType.LOCK_PICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LOCKPICK], 3); this.chest_buttons[ItemType.LOCK_PICK].id = ItemType.LOCK_PICK; this.chest_buttons[ItemType.TOTEM] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_TOTEM], 3); this.chest_buttons[ItemType.TOTEM].id = ItemType.TOTEM; this.chest_buttons[ItemType.AMETHYST_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_HELMET], 3); this.chest_buttons[ItemType.AMETHYST_HELMET].id = ItemType.AMETHYST_HELMET; this.chest_buttons[ItemType.SUPER_HAMMER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SUPER_HAMMER], 3); this.chest_buttons[ItemType.SUPER_HAMMER].id = ItemType.SUPER_HAMMER; this.chest_buttons[ItemType.BRIDGE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BRIDGE], 3); this.chest_buttons[ItemType.BRIDGE].id = ItemType.BRIDGE; this.chest_buttons[ItemType.TOWER] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_TOWER], 3); this.chest_buttons[ItemType.TOWER].id = ItemType.TOWER; this.chest_buttons[ItemType.BOAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BOAT], 3); this.chest_buttons[ItemType.BOAT].id = ItemType.BOAT; this.chest_buttons[ItemType.SLED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SLED], 3); this.chest_buttons[ItemType.SLED].id = ItemType.SLED; this.chest_buttons[ItemType.PLANE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PLANE], 3); this.chest_buttons[ItemType.PLANE].id = ItemType.PLANE; this.chest_buttons[ItemType.SADDLE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SADDLE], 3); this.chest_buttons[ItemType.SADDLE].id = ItemType.SADDLE; this.chest_buttons[ItemType.BOAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_MOUNT_BOAR], 3); this.chest_buttons[ItemType.BOAR].id = ItemType.BOAR; this.chest_buttons[ItemType.BABY_DRAGON] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BABY_DRAGON], 3); this.chest_buttons[ItemType.BABY_DRAGON].id = ItemType.BABY_DRAGON; this.chest_buttons[ItemType.BABY_MAMMOTH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BABY_MAMMOTH], 3); this.chest_buttons[ItemType.BABY_MAMMOTH].id = ItemType.BABY_MAMMOTH; this.chest_buttons[ItemType.BABY_LAVA] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BABY_LAVA], 3); this.chest_buttons[ItemType.BABY_LAVA].id = ItemType.BABY_LAVA; this.chest_buttons[ItemType.HAWK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HAWK], 3); this.chest_buttons[ItemType.HAWK].id = ItemType.HAWK; this.chest_buttons[ItemType.CRAB_BOSS] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CRAB_BOSS], 3); this.chest_buttons[ItemType.CRAB_BOSS].id = ItemType.CRAB_BOSS; this.chest_buttons[ItemType.SAND] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SAND], 3); this.chest_buttons[ItemType.SAND].id = ItemType.SAND; this.chest_buttons[ItemType.BOTTLE_FULL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BOTTLE_FULL], 3); this.chest_buttons[ItemType.BOTTLE_FULL].id = ItemType.BOTTLE_FULL; this.chest_buttons[ItemType.BOTTLE_EMPTY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BOTTLE_EMPTY], 3); this.chest_buttons[ItemType.BOTTLE_EMPTY].id = ItemType.BOTTLE_EMPTY; this.chest_buttons[ItemType.STONE_SHOVEL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SHOVEL], 3); this.chest_buttons[ItemType.STONE_SHOVEL].id = ItemType.STONE_SHOVEL; this.chest_buttons[ItemType.GOLD_SHOVEL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SHOVEL_GOLD], 3); this.chest_buttons[ItemType.GOLD_SHOVEL].id = ItemType.GOLD_SHOVEL; this.chest_buttons[ItemType.DIAMOND_SHOVEL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SHOVEL_DIAMOND], 3); this.chest_buttons[ItemType.DIAMOND_SHOVEL].id = ItemType.DIAMOND_SHOVEL; this.chest_buttons[ItemType.AMETHYST_SHOVEL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SHOVEL_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST_SHOVEL].id = ItemType.AMETHYST_SHOVEL; this.chest_buttons[ItemType.REIDITE_SHOVEL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SHOVEL_REIDITE], 3); this.chest_buttons[ItemType.REIDITE_SHOVEL].id = ItemType.REIDITE_SHOVEL; this.chest_buttons[ItemType.WRENCH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SPANNER], 3); this.chest_buttons[ItemType.WRENCH].id = ItemType.WRENCH; this.chest_buttons[ItemType.GOLD_WRENCH] = gui_create_button(68, 68, "", sprite[SPRITE.INV_GOLD_WRENCH], 3); this.chest_buttons[ItemType.GOLD_WRENCH].id = ItemType.GOLD_WRENCH; this.chest_buttons[ItemType.KRAKEN_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_KRAKEN_SKIN], 3); this.chest_buttons[ItemType.KRAKEN_FUR].id = ItemType.KRAKEN_FUR; this.chest_buttons[ItemType.WATERING_CAN_EMPTY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WATERING_CAN], 3); this.chest_buttons[ItemType.WATERING_CAN_EMPTY].id = ItemType.WATERING_CAN_EMPTY; this.chest_buttons[ItemType.FLOUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FLOUR], 3); this.chest_buttons[ItemType.FLOUR].id = ItemType.FLOUR; this.chest_buttons[ItemType.WHEAT_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WHEAT_SEED], 3); this.chest_buttons[ItemType.WHEAT_SEED].id = ItemType.WHEAT_SEED; this.chest_buttons[ItemType.COOKIE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_COOKIE], 3); this.chest_buttons[ItemType.COOKIE].id = ItemType.COOKIE; this.chest_buttons[ItemType.WHEAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WILD_WHEAT], 3); this.chest_buttons[ItemType.WHEAT].id = ItemType.WHEAT; this.chest_buttons[ItemType.WINDMILL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WINDMILL], 3); this.chest_buttons[ItemType.WINDMILL].id = ItemType.WINDMILL; this.chest_buttons[ItemType.SUPER_DIVING_SUIT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SUPER_DIVING_SUIT], 3); this.chest_buttons[ItemType.SUPER_DIVING_SUIT].id = ItemType.SUPER_DIVING_SUIT; this.chest_buttons[ItemType.DIVING_MASK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIVING_MASK], 3); this.chest_buttons[ItemType.DIVING_MASK].id = ItemType.DIVING_MASK; this.chest_buttons[ItemType.WATERING_CAN_FULL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WATERING_CAN_FULL], 3); this.chest_buttons[ItemType.WATERING_CAN_FULL].id = ItemType.WATERING_CAN_FULL; this.chest_buttons[ItemType.CAKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CAKE], 3); this.chest_buttons[ItemType.CAKE].id = ItemType.CAKE; this.chest_buttons[ItemType.BREAD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BREAD], 3); this.chest_buttons[ItemType.BREAD].id = ItemType.BREAD; this.chest_buttons[ItemType.FISH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FOODFISH], 3); this.chest_buttons[ItemType.FISH].id = ItemType.FISH; this.chest_buttons[ItemType.FISH_COOKED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FOODFISH_COOKED], 3); this.chest_buttons[ItemType.FISH_COOKED].id = ItemType.FISH_COOKED; this.chest_buttons[ItemType.PIRANHA_SCALES] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SCALES], 3); this.chest_buttons[ItemType.PIRANHA_SCALES].id = ItemType.PIRANHA_SCALES; this.chest_buttons[ItemType.GROUND] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GROUND], 3); this.chest_buttons[ItemType.GROUND].id = ItemType.GROUND; this.chest_buttons[ItemType.PLOT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PLOT], 3); this.chest_buttons[ItemType.PLOT].id = ItemType.PLOT; this.chest_buttons[ItemType.ICE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_ICE], 3); this.chest_buttons[ItemType.ICE].id = ItemType.ICE; this.chest_buttons[ItemType.BREAD_OVEN] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BREAD_OVEN], 3); this.chest_buttons[ItemType.BREAD_OVEN].id = ItemType.BREAD_OVEN; this.chest_buttons[ItemType.SANDWICH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SANDWICH], 3); this.chest_buttons[ItemType.SANDWICH].id = ItemType.SANDWICH; this.chest_buttons[ItemType.DRAGON_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_HELMET], 3); this.chest_buttons[ItemType.DRAGON_HELMET].id = ItemType.DRAGON_HELMET; this.chest_buttons[ItemType.DRAGON_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_SWORD], 3); this.chest_buttons[ItemType.DRAGON_SWORD].id = ItemType.DRAGON_SWORD; this.chest_buttons[ItemType.DRAGON_ORB] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_ORB], 3); this.chest_buttons[ItemType.DRAGON_ORB].id = ItemType.DRAGON_ORB; this.chest_buttons[ItemType.DRAGON_CUBE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_CUBE], 3); this.chest_buttons[ItemType.DRAGON_CUBE].id = ItemType.DRAGON_CUBE; this.chest_buttons[ItemType.LAVA_ORB] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_ORB], 3); this.chest_buttons[ItemType.LAVA_ORB].id = ItemType.LAVA_ORB; this.chest_buttons[ItemType.LAVA_CUBE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_CUBE], 3); this.chest_buttons[ItemType.LAVA_CUBE].id = ItemType.LAVA_CUBE; this.chest_buttons[ItemType.CROWN_GREEN] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CROWN_GREEN], 3); this.chest_buttons[ItemType.CROWN_GREEN].id = ItemType.CROWN_GREEN; this.chest_buttons[ItemType.GEM_GREEN] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GEMME_GREEN], 3); this.chest_buttons[ItemType.GEM_GREEN].id = ItemType.GEM_GREEN; this.chest_buttons[ItemType.GEM_ORANGE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GEMME_ORANGE], 3); this.chest_buttons[ItemType.GEM_ORANGE].id = ItemType.GEM_ORANGE; this.chest_buttons[ItemType.CROWN_ORANGE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CROWN_ORANGE], 3); this.chest_buttons[ItemType.CROWN_ORANGE].id = ItemType.CROWN_ORANGE; this.chest_buttons[ItemType.GEM_BLUE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GEMME_BLUE], 3); this.chest_buttons[ItemType.GEM_BLUE].id = ItemType.GEM_BLUE; this.chest_buttons[ItemType.CROWN_BLUE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CROWN_BLUE], 3); this.chest_buttons[ItemType.CROWN_BLUE].id = ItemType.CROWN_BLUE; this.chest_buttons[ItemType.HOOD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_HOOD], 3); this.chest_buttons[ItemType.HOOD].id = ItemType.HOOD; this.chest_buttons[ItemType.PEASANT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PEASANT], 3); this.chest_buttons[ItemType.PEASANT].id = ItemType.PEASANT; this.chest_buttons[ItemType.WINTER_PEASANT_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SPECIAL_FUR], 3); this.chest_buttons[ItemType.WINTER_PEASANT_FUR].id = ItemType.WINTER_PEASANT_FUR; this.chest_buttons[ItemType.WINTER_HOOD_FUR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SPECIAL_FUR_2], 3); this.chest_buttons[ItemType.WINTER_HOOD_FUR].id = ItemType.WINTER_HOOD_FUR; this.chest_buttons[ItemType.WINTER_PEASANT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WINTER_PEASANT], 3); this.chest_buttons[ItemType.WINTER_PEASANT].id = ItemType.WINTER_PEASANT; this.chest_buttons[ItemType.WINTER_HOOD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WINTER_HOOD], 3); this.chest_buttons[ItemType.WINTER_HOOD].id = ItemType.WINTER_HOOD; this.chest_buttons[ItemType.BUCKET_FULL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BUCKET_FULL], 3); this.chest_buttons[ItemType.BUCKET_FULL].id = ItemType.BUCKET_FULL; this.chest_buttons[ItemType.BUCKET_EMPTY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BUCKET_EMPTY], 3); this.chest_buttons[ItemType.BUCKET_EMPTY].id = ItemType.BUCKET_EMPTY; this.chest_buttons[ItemType.WELL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WELL], 3); this.chest_buttons[ItemType.WELL].id = ItemType.WELL; this.chest_buttons[ItemType.PUMPKIN_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PUMPKIN_SEED], 3); this.chest_buttons[ItemType.PUMPKIN_SEED].id = ItemType.PUMPKIN_SEED; this.chest_buttons[ItemType.PUMPKIN] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PUMPKIN], 3); this.chest_buttons[ItemType.PUMPKIN].id = ItemType.PUMPKIN; this.chest_buttons[ItemType.ROOF] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_ROOF], 3); this.chest_buttons[ItemType.ROOF].id = ItemType.ROOF; this.chest_buttons[ItemType.GARLIC_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GARLIC_SEED], 3); this.chest_buttons[ItemType.GARLIC_SEED].id = ItemType.GARLIC_SEED; this.chest_buttons[ItemType.GARLIC] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GARLIC], 3); this.chest_buttons[ItemType.GARLIC].id = ItemType.GARLIC; this.chest_buttons[ItemType.THORNBUSH_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_THORNBUSH_SEED], 3); this.chest_buttons[ItemType.THORNBUSH_SEED].id = ItemType.THORNBUSH_SEED; this.chest_buttons[ItemType.THORNBUSH] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_THORNBUSH], 3); this.chest_buttons[ItemType.THORNBUSH].id = ItemType.THORNBUSH; this.chest_buttons[ItemType.TOMATO_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_TOMATO_SEED], 3); this.chest_buttons[ItemType.TOMATO_SEED].id = ItemType.TOMATO_SEED; this.chest_buttons[ItemType.TOMATO] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_TOMATO], 3); this.chest_buttons[ItemType.TOMATO].id = ItemType.TOMATO; this.chest_buttons[ItemType.CARROT_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CARROT_SEED], 3); this.chest_buttons[ItemType.CARROT_SEED].id = ItemType.CARROT_SEED; this.chest_buttons[ItemType.CARROT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CARROT], 3); this.chest_buttons[ItemType.CARROT].id = ItemType.CARROT; this.chest_buttons[ItemType.WATERMELON_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WATERMELON_SEED], 3); this.chest_buttons[ItemType.WATERMELON_SEED].id = ItemType.WATERMELON_SEED; this.chest_buttons[ItemType.WATERMELON] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WATERMELON], 3); this.chest_buttons[ItemType.WATERMELON].id = ItemType.WATERMELON; this.chest_buttons[ItemType.ALOE_VERA_SEED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_ALOE_VERA_SEED], 3); this.chest_buttons[ItemType.ALOE_VERA_SEED].id = ItemType.ALOE_VERA_SEED; this.chest_buttons[ItemType.ALOE_VERA] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_ALOE_VERA], 3); this.chest_buttons[ItemType.ALOE_VERA].id = ItemType.ALOE_VERA; //Christmas this.chest_buttons[ItemType.CHRISTMAS_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CHRISTMAS_HAT], 3); this.chest_buttons[ItemType.CHRISTMAS_HAT].id = ItemType.CHRISTMAS_HAT; this.chest_buttons[ItemType.ELF_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_ELF_HAT], 3); this.chest_buttons[ItemType.ELF_HAT].id = ItemType.ELF_HAT; this.chest_buttons[ItemType.WOOD_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_SPEAR], 3); this.chest_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.chest_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DRAGON_SPEAR], 3); this.chest_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.chest_buttons[ItemType.CRAB_STICK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CRAB_STICK], 3); this.chest_buttons[ItemType.CRAB_STICK].id = ItemType.CRAB_STICK; this.chest_buttons[ItemType.CRAB_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CRAB_SPEAR], 3); this.chest_buttons[ItemType.CRAB_SPEAR].id = ItemType.CRAB_SPEAR; this.chest_buttons[ItemType.CRAB_LOOT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CRAB_LOOT], 3); this.chest_buttons[ItemType.CRAB_LOOT].id = ItemType.CRAB_LOOT; this.chest_buttons[ItemType.BED] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_BED], 3); this.chest_buttons[ItemType.BED].id = ItemType.BED; this.chest_buttons[ItemType.CRAB_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CROWN_CRAB], 3); this.chest_buttons[ItemType.CRAB_HELMET].id = ItemType.CRAB_HELMET; //Christmas this.chest_buttons[ItemType.GARLAND] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GARLAND], 3); this.chest_buttons[ItemType.GARLAND].id = ItemType.GARLAND; this.chest_buttons[ItemType.SUGAR_CAN] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SUGAR_CAN], 3); this.chest_buttons[ItemType.SUGAR_CAN].id = ItemType.SUGAR_CAN; this.chest_buttons[ItemType.CANDY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CANDY], 3); this.chest_buttons[ItemType.CANDY].id = ItemType.CANDY; this.plus_buttons = []; for (var i = 0; i < 250; i++) this.plus_buttons[i] = gui_create_button(0, 0, "", sprite[SPRITE.CHEST_PLUS]); this.inv_buttons = []; this.inv_buttons[ItemType.STONE_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SWORD], 3); this.inv_buttons[ItemType.STONE_SWORD].id = ItemType.STONE_SWORD; this.inv_buttons[ItemType.STONE_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK], 3); this.inv_buttons[ItemType.STONE_PICK].id = ItemType.STONE_PICK; this.inv_buttons[ItemType.STONE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE], 3); this.inv_buttons[ItemType.STONE].id = ItemType.STONE; this.inv_buttons[ItemType.STONE].info.img[2] = this.inv_buttons[ItemType.STONE].info.img[0]; this.inv_buttons[ItemType.WOOD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD], 3); this.inv_buttons[ItemType.WOOD].id = ItemType.WOOD; this.inv_buttons[ItemType.WOOD].info.img[2] = this.inv_buttons[ItemType.WOOD].info.img[0]; this.inv_buttons[ItemType.BERRY] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PLANT], 3); this.inv_buttons[ItemType.BERRY].id = ItemType.BERRY; this.inv_buttons[ItemType.CACTUS] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CACTUS], 3); this.inv_buttons[ItemType.CACTUS].id = ItemType.CACTUS; this.inv_buttons[ItemType.GOLD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD], 3); this.inv_buttons[ItemType.GOLD].id = ItemType.GOLD; this.inv_buttons[ItemType.GOLD].info.img[2] = this.inv_buttons[ItemType.GOLD].info.img[0]; this.inv_buttons[ItemType.DIAMOND] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND], 3); this.inv_buttons[ItemType.DIAMOND].id = ItemType.DIAMOND; this.inv_buttons[ItemType.DIAMOND].info.img[2] = this.inv_buttons[ItemType.DIAMOND].info.img[0]; this.inv_buttons[ItemType.GOLD_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK_GOLD], 3); this.inv_buttons[ItemType.GOLD_PICK].id = ItemType.GOLD_PICK; this.inv_buttons[ItemType.DIAMOND_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK_DIAMOND], 3); this.inv_buttons[ItemType.DIAMOND_PICK].id = ItemType.DIAMOND_PICK; this.inv_buttons[ItemType.GOLD_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SWORD_GOLD], 3); this.inv_buttons[ItemType.GOLD_SWORD].id = ItemType.GOLD_SWORD; this.inv_buttons[ItemType.WOOD_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SWORD_WOOD], 3); this.inv_buttons[ItemType.WOOD_SWORD].id = ItemType.WOOD_SWORD; this.inv_buttons[ItemType.DIAMOND_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SWORD_DIAMOND], 3); this.inv_buttons[ItemType.DIAMOND_SWORD].id = ItemType.DIAMOND_SWORD; this.inv_buttons[ItemType.FIRE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FIRE], 3); this.inv_buttons[ItemType.FIRE].id = ItemType.FIRE; this.inv_buttons[ItemType.WORKBENCH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WORK], 3); this.inv_buttons[ItemType.WORKBENCH].id = ItemType.WORKBENCH; this.inv_buttons[ItemType.BERRY_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SEED], 3); this.inv_buttons[ItemType.BERRY_SEED].id = ItemType.BERRY_SEED; this.inv_buttons[ItemType.WOOD_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WALL], 3); this.inv_buttons[ItemType.WOOD_WALL].id = ItemType.WOOD_WALL; this.inv_buttons[ItemType.WOOD_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SPIKE], 3); this.inv_buttons[ItemType.WOOD_SPIKE].id = ItemType.WOOD_SPIKE; this.inv_buttons[ItemType.WOOD_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK_WOOD], 3); this.inv_buttons[ItemType.WOOD_PICK].id = ItemType.WOOD_PICK; this.inv_buttons[ItemType.COOKED_MEAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_COOKED_MEAT], 3); this.inv_buttons[ItemType.COOKED_MEAT].id = ItemType.COOKED_MEAT; this.inv_buttons[ItemType.MEAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_MEAT], 3); this.inv_buttons[ItemType.MEAT].id = ItemType.MEAT; this.inv_buttons[ItemType.BIG_FIRE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BIG_FIRE], 3); this.inv_buttons[ItemType.BIG_FIRE].id = ItemType.BIG_FIRE; this.inv_buttons[ItemType.BANDAGE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BANDAGE], 3); this.inv_buttons[ItemType.BANDAGE].id = ItemType.BANDAGE; this.inv_buttons[ItemType.CORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CORD], 3); this.inv_buttons[ItemType.CORD].id = ItemType.CORD; this.inv_buttons[ItemType.CORD].info.img[2] = this.inv_buttons[ItemType.CORD].info.img[0]; this.inv_buttons[ItemType.STONE_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_WALL], 3); this.inv_buttons[ItemType.STONE_WALL].id = ItemType.STONE_WALL; this.inv_buttons[ItemType.GOLD_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_WALL], 3); this.inv_buttons[ItemType.GOLD_WALL].id = ItemType.GOLD_WALL; this.inv_buttons[ItemType.DIAMOND_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_WALL], 3); this.inv_buttons[ItemType.DIAMOND_WALL].id = ItemType.DIAMOND_WALL; this.inv_buttons[ItemType.WOOD_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DOOR_WOOD_CLOSE], 3); this.inv_buttons[ItemType.WOOD_DOOR].id = ItemType.WOOD_DOOR; this.inv_buttons[ItemType.CHEST] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CHEST], 3); this.inv_buttons[ItemType.CHEST].id = ItemType.CHEST; this.inv_buttons[ItemType.STONE_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_SPIKE], 3); this.inv_buttons[ItemType.STONE_SPIKE].id = ItemType.STONE_SPIKE; this.inv_buttons[ItemType.GOLD_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_SPIKE], 3); this.inv_buttons[ItemType.GOLD_SPIKE].id = ItemType.GOLD_SPIKE; this.inv_buttons[ItemType.DIAMOND_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_SPIKE], 3); this.inv_buttons[ItemType.DIAMOND_SPIKE].id = ItemType.DIAMOND_SPIKE; this.inv_buttons[ItemType.BAG] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BAG], 3); this.inv_buttons[ItemType.BAG].id = ItemType.BAG; this.inv_buttons[ItemType.EARMUFFS] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EARMUFFS], 3); this.inv_buttons[ItemType.EARMUFFS].id = ItemType.EARMUFFS; this.inv_buttons[ItemType.STONE_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DOOR_STONE_CLOSE], 3); this.inv_buttons[ItemType.STONE_DOOR].id = ItemType.STONE_DOOR; this.inv_buttons[ItemType.GOLD_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DOOR_GOLD_CLOSE], 3); this.inv_buttons[ItemType.GOLD_DOOR].id = ItemType.GOLD_DOOR; this.inv_buttons[ItemType.DIAMOND_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DOOR_DIAMOND_CLOSE], 3); this.inv_buttons[ItemType.DIAMOND_DOOR].id = ItemType.DIAMOND_DOOR; this.inv_buttons[ItemType.RABBIT_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR], 3); this.inv_buttons[ItemType.RABBIT_FUR].id = ItemType.RABBIT_FUR; this.inv_buttons[ItemType.RABBIT_FUR].info.img[2] = this.inv_buttons[ItemType.RABBIT_FUR].info.img[0]; this.inv_buttons[ItemType.BOAR_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR_BOAR], 3); this.inv_buttons[ItemType.BOAR_FUR].id = ItemType.BOAR_FUR; this.inv_buttons[ItemType.BOAR_FUR].info.img[2] = this.inv_buttons[ItemType.BOAR_FUR].info.img[0]; this.inv_buttons[ItemType.WOLF_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR_WOLF], 3); this.inv_buttons[ItemType.WOLF_FUR].id = ItemType.WOLF_FUR; this.inv_buttons[ItemType.WOLF_FUR].info.img[2] = this.inv_buttons[ItemType.WOLF_FUR].info.img[0]; this.inv_buttons[ItemType.PENGUIN_FEATHER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PENGUIN_FEATHER], 3); this.inv_buttons[ItemType.PENGUIN_FEATHER].id = ItemType.PENGUIN_FEATHER; this.inv_buttons[ItemType.HAWK_FEATHER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAWK_FEATHER], 3); this.inv_buttons[ItemType.HAWK_FEATHER].id = ItemType.HAWK_FEATHER; this.inv_buttons[ItemType.VULTURE_FEATHER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_VULTURE_FEATHER], 3); this.inv_buttons[ItemType.VULTURE_FEATHER].id = ItemType.VULTURE_FEATHER; this.inv_buttons[ItemType.EMERALD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EMERALD], 3); this.inv_buttons[ItemType.EMERALD].id = ItemType.EMERALD; this.inv_buttons[ItemType.EARMUFFS] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EARMUFFS], 3); this.inv_buttons[ItemType.EARMUFFS].id = ItemType.EARMUFFS; this.inv_buttons[ItemType.COAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_COAT], 3); this.inv_buttons[ItemType.COAT].id = ItemType.COAT; this.inv_buttons[ItemType.WOOD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_SPEAR], 3); this.inv_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.inv_buttons[ItemType.STONE_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SPEAR], 3); this.inv_buttons[ItemType.STONE_SPEAR].id = ItemType.STONE_SPEAR; this.inv_buttons[ItemType.GOLD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_SPEAR], 3); this.inv_buttons[ItemType.GOLD_SPEAR].id = ItemType.GOLD_SPEAR; this.inv_buttons[ItemType.DIAMOND_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_SPEAR], 3); this.inv_buttons[ItemType.DIAMOND_SPEAR].id = ItemType.DIAMOND_SPEAR; this.inv_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_SPEAR], 3); this.inv_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.inv_buttons[ItemType.FURNACE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FURNACE], 3); this.inv_buttons[ItemType.FURNACE].id = ItemType.FURNACE; this.inv_buttons[ItemType.EXPLORER_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EXPLORER_HAT], 3); this.inv_buttons[ItemType.EXPLORER_HAT].id = ItemType.EXPLORER_HAT; this.inv_buttons[ItemType.PIRATE_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PIRATE_HAT], 3); this.inv_buttons[ItemType.PIRATE_HAT].id = ItemType.PIRATE_HAT; this.inv_buttons[ItemType.FLOWER_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FLOWER_HAT], 3); this.inv_buttons[ItemType.FLOWER_HAT].id = ItemType.FLOWER_HAT; this.inv_buttons[ItemType.FUR_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR_HAT], 3); this.inv_buttons[ItemType.FUR_HAT].id = ItemType.FUR_HAT; this.inv_buttons[ItemType.TURBAN1] = gui_create_button(60, 60, "", sprite[SPRITE.INV_TURBAN1], 3); this.inv_buttons[ItemType.TURBAN1].id = ItemType.TURBAN1; this.inv_buttons[ItemType.TURBAN2] = gui_create_button(60, 60, "", sprite[SPRITE.INV_TURBAN2], 3); this.inv_buttons[ItemType.TURBAN2].id = ItemType.TURBAN2; this.inv_buttons[ItemType.WOOD_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_BOW], 3); this.inv_buttons[ItemType.WOOD_BOW].id = ItemType.WOOD_BOW; this.inv_buttons[ItemType.WOOD_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_ARROW], 3); this.inv_buttons[ItemType.WOOD_ARROW].id = ItemType.WOOD_ARROW; this.inv_buttons[ItemType.WOOD_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_SHIELD], 3); this.inv_buttons[ItemType.WOOD_SHIELD].id = ItemType.WOOD_SHIELD; this.inv_buttons[ItemType.STONE_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_BOW], 3); this.inv_buttons[ItemType.STONE_BOW].id = ItemType.STONE_BOW; this.inv_buttons[ItemType.STONE_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_ARROW], 3); this.inv_buttons[ItemType.STONE_ARROW].id = ItemType.STONE_ARROW; this.inv_buttons[ItemType.STONE_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_SHIELD], 3); this.inv_buttons[ItemType.STONE_SHIELD].id = ItemType.STONE_SHIELD; this.inv_buttons[ItemType.GOLD_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_BOW], 3); this.inv_buttons[ItemType.GOLD_BOW].id = ItemType.GOLD_BOW; this.inv_buttons[ItemType.GOLD_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_ARROW], 3); this.inv_buttons[ItemType.GOLD_ARROW].id = ItemType.GOLD_ARROW; this.inv_buttons[ItemType.GOLD_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_SHIELD], 3); this.inv_buttons[ItemType.GOLD_SHIELD].id = ItemType.GOLD_SHIELD; this.inv_buttons[ItemType.DIAMOND_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_BOW], 3); this.inv_buttons[ItemType.DIAMOND_BOW].id = ItemType.DIAMOND_BOW; this.inv_buttons[ItemType.DIAMOND_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_ARROW], 3); this.inv_buttons[ItemType.DIAMOND_ARROW].id = ItemType.DIAMOND_ARROW; this.inv_buttons[ItemType.DIAMOND_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_SHIELD], 3); this.inv_buttons[ItemType.DIAMOND_SHIELD].id = ItemType.DIAMOND_SHIELD; this.inv_buttons[ItemType.AMETHYST_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_BOW], 3); this.inv_buttons[ItemType.AMETHYST_BOW].id = ItemType.AMETHYST_BOW; this.inv_buttons[ItemType.AMETHYST_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_ARROW], 3); this.inv_buttons[ItemType.AMETHYST_ARROW].id = ItemType.AMETHYST_ARROW; this.inv_buttons[ItemType.AMETHYST_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_SHIELD], 3); this.inv_buttons[ItemType.AMETHYST_SHIELD].id = ItemType.AMETHYST_SHIELD; this.inv_buttons[ItemType.REIDITE_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_BOW], 3); this.inv_buttons[ItemType.REIDITE_BOW].id = ItemType.REIDITE_BOW; this.inv_buttons[ItemType.REIDITE_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_ARROW], 3); this.inv_buttons[ItemType.REIDITE_ARROW].id = ItemType.REIDITE_ARROW; this.inv_buttons[ItemType.REIDITE_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_SHIELD], 3); this.inv_buttons[ItemType.REIDITE_SHIELD].id = ItemType.REIDITE_SHIELD; this.inv_buttons[ItemType.DRAGON_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_BOW], 3); this.inv_buttons[ItemType.DRAGON_BOW].id = ItemType.DRAGON_BOW; this.inv_buttons[ItemType.DRAGON_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_ARROW], 3); this.inv_buttons[ItemType.DRAGON_ARROW].id = ItemType.DRAGON_ARROW; this.inv_buttons[ItemType.WOOD_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_HELMET], 3); this.inv_buttons[ItemType.WOOD_HELMET].id = ItemType.WOOD_HELMET; this.inv_buttons[ItemType.STONE_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_HELMET], 3); this.inv_buttons[ItemType.STONE_HELMET].id = ItemType.STONE_HELMET; this.inv_buttons[ItemType.GOLD_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_HELMET], 3); this.inv_buttons[ItemType.GOLD_HELMET].id = ItemType.GOLD_HELMET; this.inv_buttons[ItemType.DIAMOND_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_HELMET], 3); this.inv_buttons[ItemType.DIAMOND_HELMET].id = ItemType.DIAMOND_HELMET; this.inv_buttons[ItemType.BOOK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BOOK], 3); this.inv_buttons[ItemType.BOOK].id = ItemType.BOOK; this.inv_buttons[ItemType.PAPER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PAPER], 3); this.inv_buttons[ItemType.PAPER].id = ItemType.PAPER; this.inv_buttons[ItemType.PAPER].info.img[2] = this.inv_buttons[ItemType.PAPER].info.img[0]; this.inv_buttons[ItemType.BAG] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BAG], 3); this.inv_buttons[ItemType.BAG].id = ItemType.BAG; this.inv_buttons[ItemType.AMETHYST] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST].id = ItemType.AMETHYST; this.inv_buttons[ItemType.AMETHYST].info.img[2] = this.inv_buttons[ItemType.AMETHYST].info.img[0]; this.inv_buttons[ItemType.AMETHYST_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SWORD_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST_SWORD].id = ItemType.AMETHYST_SWORD; this.inv_buttons[ItemType.PIRATE_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PIRATE_SWORD], 3); this.inv_buttons[ItemType.PIRATE_SWORD].id = ItemType.PIRATE_SWORD; this.inv_buttons[ItemType.AMETHYST_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST_PICK].id = ItemType.AMETHYST_PICK; this.inv_buttons[ItemType.REIDITE_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PICK_REIDITE], 3); this.inv_buttons[ItemType.REIDITE_PICK].id = ItemType.REIDITE_PICK; this.inv_buttons[ItemType.AMETHYST_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_SPEAR], 3); this.inv_buttons[ItemType.AMETHYST_SPEAR].id = ItemType.AMETHYST_SPEAR; this.inv_buttons[ItemType.STONE_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAMMER], 3); this.inv_buttons[ItemType.STONE_HAMMER].id = ItemType.STONE_HAMMER; this.inv_buttons[ItemType.GOLD_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAMMER_GOLD], 3); this.inv_buttons[ItemType.GOLD_HAMMER].id = ItemType.GOLD_HAMMER; this.inv_buttons[ItemType.DIAMOND_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAMMER_DIAMOND], 3); this.inv_buttons[ItemType.DIAMOND_HAMMER].id = ItemType.DIAMOND_HAMMER; this.inv_buttons[ItemType.AMETHYST_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAMMER_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST_HAMMER].id = ItemType.AMETHYST_HAMMER; this.inv_buttons[ItemType.REIDITE_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAMMER_REIDITE], 3); this.inv_buttons[ItemType.REIDITE_HAMMER].id = ItemType.REIDITE_HAMMER; this.inv_buttons[ItemType.AMETHYST_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_WALL], 3); this.inv_buttons[ItemType.AMETHYST_WALL].id = ItemType.AMETHYST_WALL; this.inv_buttons[ItemType.AMETHYST_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_SPIKE], 3); this.inv_buttons[ItemType.AMETHYST_SPIKE].id = ItemType.AMETHYST_SPIKE; this.inv_buttons[ItemType.AMETHYST_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DOOR_AMETHYST_CLOSE], 3); this.inv_buttons[ItemType.AMETHYST_DOOR].id = ItemType.AMETHYST_DOOR; this.inv_buttons[ItemType.CAP_SCARF] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CAP_SCARF], 3); this.inv_buttons[ItemType.CAP_SCARF].id = ItemType.CAP_SCARF; this.inv_buttons[ItemType.WINTER_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR_WINTER], 3); this.inv_buttons[ItemType.WINTER_FUR].id = ItemType.WINTER_FUR; this.inv_buttons[ItemType.WINTER_FUR].info.img[2] = this.inv_buttons[ItemType.WINTER_FUR].info.img[0]; this.inv_buttons[ItemType.MAMMOTH_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FUR_MAMMOTH], 3); this.inv_buttons[ItemType.MAMMOTH_FUR].id = ItemType.MAMMOTH_FUR; this.inv_buttons[ItemType.MAMMOTH_FUR].info.img[2] = this.inv_buttons[ItemType.MAMMOTH_FUR].info.img[0]; this.inv_buttons[ItemType.DIAMOND_CORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BLUE_CORD], 3); this.inv_buttons[ItemType.DIAMOND_CORD].id = ItemType.DIAMOND_CORD; this.inv_buttons[ItemType.DIAMOND_CORD].info.img[2] = this.inv_buttons[ItemType.DIAMOND_CORD].info.img[0]; this.inv_buttons[ItemType.LOCK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LOCK], 3); this.inv_buttons[ItemType.LOCK].id = ItemType.LOCK; this.inv_buttons[ItemType.LOCK].info.img[2] = this.inv_buttons[ItemType.LOCK].info.img[0]; this.inv_buttons[ItemType.DRAGON_HEART] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_HEART], 3); this.inv_buttons[ItemType.DRAGON_HEART].id = ItemType.DRAGON_HEART; this.inv_buttons[ItemType.LAVA_HEART] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_HEART], 3); this.inv_buttons[ItemType.LAVA_HEART].id = ItemType.LAVA_HEART; this.inv_buttons[ItemType.RESURRECTION] = gui_create_button(60, 60, "", sprite[SPRITE.INV_RESURRECTION], 3); this.inv_buttons[ItemType.RESURRECTION].id = ItemType.RESURRECTION; this.inv_buttons[ItemType.LOCK_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LOCKPICK], 3); this.inv_buttons[ItemType.LOCK_PICK].id = ItemType.LOCK_PICK; this.inv_buttons[ItemType.TOTEM] = gui_create_button(60, 60, "", sprite[SPRITE.INV_TOTEM], 3); this.inv_buttons[ItemType.TOTEM].id = ItemType.TOTEM; this.inv_buttons[ItemType.AMETHYST_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_HELMET], 3); this.inv_buttons[ItemType.AMETHYST_HELMET].id = ItemType.AMETHYST_HELMET; this.inv_buttons[ItemType.SUPER_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SUPER_HAMMER], 3); this.inv_buttons[ItemType.SUPER_HAMMER].id = ItemType.SUPER_HAMMER; this.inv_buttons[ItemType.BRIDGE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BRIDGE], 3); this.inv_buttons[ItemType.BRIDGE].id = ItemType.BRIDGE; this.inv_buttons[ItemType.TOWER] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_TOWER], 3); this.inv_buttons[ItemType.TOWER].id = ItemType.TOWER; this.inv_buttons[ItemType.BOAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BOAT], 3); this.inv_buttons[ItemType.BOAT].id = ItemType.BOAT; this.inv_buttons[ItemType.SLED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SLED], 3); this.inv_buttons[ItemType.SLED].id = ItemType.SLED; this.inv_buttons[ItemType.PLANE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PLANE], 3); this.inv_buttons[ItemType.PLANE].id = ItemType.PLANE; this.inv_buttons[ItemType.SADDLE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SADDLE], 3); this.inv_buttons[ItemType.SADDLE].id = ItemType.SADDLE; this.inv_buttons[ItemType.BOAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_MOUNT_BOAR], 3); this.inv_buttons[ItemType.BOAR].id = ItemType.BOAR; this.inv_buttons[ItemType.CRAB_BOSS] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CRAB_BOSS], 3); this.inv_buttons[ItemType.CRAB_BOSS].id = ItemType.CRAB_BOSS; this.inv_buttons[ItemType.BABY_DRAGON] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BABY_DRAGON], 3); this.inv_buttons[ItemType.BABY_DRAGON].id = ItemType.BABY_DRAGON; this.inv_buttons[ItemType.BABY_MAMMOTH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BABY_MAMMOTH], 3); this.inv_buttons[ItemType.BABY_MAMMOTH].id = ItemType.BABY_MAMMOTH; this.inv_buttons[ItemType.BABY_LAVA] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BABY_LAVA], 3); this.inv_buttons[ItemType.BABY_LAVA].id = ItemType.BABY_LAVA; this.inv_buttons[ItemType.HAWK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HAWK], 3); this.inv_buttons[ItemType.HAWK].id = ItemType.HAWK; this.inv_buttons[ItemType.SAND] = gui_create_button(60, 60, "", sprite[ItemType.SAND], 3); this.inv_buttons[ItemType.SAND].id = ItemType.SAND; this.inv_buttons[ItemType.SAND].info.img[2] = this.inv_buttons[ItemType.SAND].info.img[0]; this.inv_buttons[ItemType.BOTTLE_FULL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BOTTLE_FULL], 3); this.inv_buttons[ItemType.BOTTLE_FULL].id = ItemType.BOTTLE_FULL; this.inv_buttons[ItemType.BOTTLE_EMPTY] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BOTTLE_EMPTY], 3); this.inv_buttons[ItemType.BOTTLE_EMPTY].id = ItemType.BOTTLE_EMPTY; this.inv_buttons[ItemType.STONE_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SHOVEL], 3); this.inv_buttons[ItemType.STONE_SHOVEL].id = ItemType.STONE_SHOVEL; this.inv_buttons[ItemType.GOLD_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SHOVEL_GOLD], 3); this.inv_buttons[ItemType.GOLD_SHOVEL].id = ItemType.GOLD_SHOVEL; this.inv_buttons[ItemType.DIAMOND_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SHOVEL_DIAMOND], 3); this.inv_buttons[ItemType.DIAMOND_SHOVEL].id = ItemType.DIAMOND_SHOVEL; this.inv_buttons[ItemType.AMETHYST_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SHOVEL_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST_SHOVEL].id = ItemType.AMETHYST_SHOVEL; this.inv_buttons[ItemType.REIDITE_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SHOVEL_REIDITE], 3); this.inv_buttons[ItemType.REIDITE_SHOVEL].id = ItemType.REIDITE_SHOVEL; this.inv_buttons[ItemType.WRENCH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SPANNER], 3); this.inv_buttons[ItemType.WRENCH].id = ItemType.WRENCH; this.inv_buttons[ItemType.GOLD_WRENCH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_WRENCH], 3); this.inv_buttons[ItemType.GOLD_WRENCH].id = ItemType.GOLD_WRENCH; this.inv_buttons[ItemType.KRAKEN_FUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_KRAKEN_SKIN], 3); this.inv_buttons[ItemType.KRAKEN_FUR].id = ItemType.KRAKEN_FUR; this.inv_buttons[ItemType.KRAKEN_FUR].info.img[2] = this.inv_buttons[ItemType.KRAKEN_FUR].info.img[0]; this.inv_buttons[ItemType.WATERING_CAN_EMPTY] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WATERING_CAN], 3); this.inv_buttons[ItemType.WATERING_CAN_EMPTY].id = ItemType.WATERING_CAN_EMPTY; this.inv_buttons[ItemType.FLOUR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FLOUR], 3); this.inv_buttons[ItemType.FLOUR].id = ItemType.FLOUR; this.inv_buttons[ItemType.FLOUR].info.img[2] = this.inv_buttons[ItemType.FLOUR].info.img[0]; this.inv_buttons[ItemType.WHEAT_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WHEAT_SEED], 3); this.inv_buttons[ItemType.WHEAT_SEED].id = ItemType.WHEAT_SEED; this.inv_buttons[ItemType.COOKIE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_COOKIE], 3); this.inv_buttons[ItemType.COOKIE].id = ItemType.COOKIE; this.inv_buttons[ItemType.WHEAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WILD_WHEAT], 3); this.inv_buttons[ItemType.WHEAT].id = ItemType.WHEAT; this.inv_buttons[ItemType.WHEAT].info.img[2] = this.inv_buttons[ItemType.WHEAT].info.img[0]; this.inv_buttons[ItemType.WINDMILL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WINDMILL], 3); this.inv_buttons[ItemType.WINDMILL].id = ItemType.WINDMILL; this.inv_buttons[ItemType.SUPER_DIVING_SUIT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SUPER_DIVING_SUIT], 3); this.inv_buttons[ItemType.SUPER_DIVING_SUIT].id = ItemType.SUPER_DIVING_SUIT; this.inv_buttons[ItemType.DIVING_MASK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIVING_MASK], 3); this.inv_buttons[ItemType.DIVING_MASK].id = ItemType.DIVING_MASK; this.inv_buttons[ItemType.WATERING_CAN_FULL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WATERING_CAN_FULL], 3); this.inv_buttons[ItemType.WATERING_CAN_FULL].id = ItemType.WATERING_CAN_FULL; this.inv_buttons[ItemType.CAKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CAKE], 3); this.inv_buttons[ItemType.CAKE].id = ItemType.CAKE; this.inv_buttons[ItemType.BREAD] = gui_create_button(60, 60, "", sprite[ItemType.BREAD], 3); this.inv_buttons[ItemType.BREAD].id = ItemType.BREAD; this.inv_buttons[ItemType.FISH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FOODFISH], 3); this.inv_buttons[ItemType.FISH].id = ItemType.FISH; this.inv_buttons[ItemType.FISH_COOKED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FOODFISH_COOKED], 3); this.inv_buttons[ItemType.FISH_COOKED].id = ItemType.FISH_COOKED; this.inv_buttons[ItemType.PIRANHA_SCALES] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SCALES], 3); this.inv_buttons[ItemType.PIRANHA_SCALES].id = ItemType.PIRANHA_SCALES; this.inv_buttons[ItemType.PIRANHA_SCALES].info.img[2] = this.inv_buttons[ItemType.PIRANHA_SCALES].info.img[0]; this.inv_buttons[ItemType.GROUND] = gui_create_button(60, 60, "", sprite[ItemType.GROUND], 3); this.inv_buttons[ItemType.GROUND].id = ItemType.GROUND; this.inv_buttons[ItemType.GROUND].info.img[2] = this.inv_buttons[ItemType.GROUND].info.img[0]; this.inv_buttons[ItemType.PLOT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PLOT], 3); this.inv_buttons[ItemType.PLOT].id = ItemType.PLOT; this.inv_buttons[ItemType.ICE] = gui_create_button(60, 60, "", sprite[ItemType.ICE], 3); this.inv_buttons[ItemType.ICE].id = ItemType.ICE; this.inv_buttons[ItemType.ICE].info.img[2] = this.inv_buttons[ItemType.ICE].info.img[0]; this.inv_buttons[ItemType.BREAD_OVEN] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BREAD_OVEN], 3); this.inv_buttons[ItemType.BREAD_OVEN].id = ItemType.BREAD_OVEN; this.inv_buttons[ItemType.SANDWICH] = gui_create_button(60, 60, "", sprite[ItemType.SANDWICH], 3); this.inv_buttons[ItemType.SANDWICH].id = ItemType.SANDWICH; this.inv_buttons[ItemType.DRAGON_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_HELMET], 3); this.inv_buttons[ItemType.DRAGON_HELMET].id = ItemType.DRAGON_HELMET; this.inv_buttons[ItemType.DRAGON_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_SWORD], 3); this.inv_buttons[ItemType.DRAGON_SWORD].id = ItemType.DRAGON_SWORD; this.inv_buttons[ItemType.DRAGON_ORB] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_ORB], 3); this.inv_buttons[ItemType.DRAGON_ORB].id = ItemType.DRAGON_ORB; this.inv_buttons[ItemType.DRAGON_ORB].info.img[2] = this.inv_buttons[ItemType.DRAGON_ORB].info.img[0]; this.inv_buttons[ItemType.DRAGON_CUBE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_CUBE], 3); this.inv_buttons[ItemType.DRAGON_CUBE].id = ItemType.DRAGON_CUBE; this.inv_buttons[ItemType.DRAGON_CUBE].info.img[2] = this.inv_buttons[ItemType.DRAGON_CUBE].info.img[0]; this.inv_buttons[ItemType.LAVA_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_SPEAR], 3); this.inv_buttons[ItemType.LAVA_SPEAR].id = ItemType.LAVA_SPEAR; this.inv_buttons[ItemType.LAVA_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_SWORD], 3); this.inv_buttons[ItemType.LAVA_SWORD].id = ItemType.LAVA_SWORD; this.inv_buttons[ItemType.LAVA_ORB] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_ORB], 3); this.inv_buttons[ItemType.LAVA_ORB].id = ItemType.LAVA_ORB; this.inv_buttons[ItemType.LAVA_ORB].info.img[2] = this.inv_buttons[ItemType.LAVA_ORB].info.img[0]; this.inv_buttons[ItemType.LAVA_CUBE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_CUBE], 3); this.inv_buttons[ItemType.LAVA_CUBE].id = ItemType.LAVA_CUBE; this.inv_buttons[ItemType.LAVA_CUBE].info.img[2] = this.inv_buttons[ItemType.LAVA_CUBE].info.img[0]; this.inv_buttons[ItemType.CROWN_GREEN] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CROWN_GREEN], 3); this.inv_buttons[ItemType.CROWN_GREEN].id = ItemType.CROWN_GREEN; this.inv_buttons[ItemType.GEM_GREEN] = gui_create_button(60, 60, "", sprite[ItemType.GEM_GREEN], 3); this.inv_buttons[ItemType.GEM_GREEN].id = ItemType.GEM_GREEN; this.inv_buttons[ItemType.GEM_GREEN].info.img[2] = this.inv_buttons[ItemType.GEM_GREEN].info.img[0]; this.inv_buttons[ItemType.GEM_ORANGE] = gui_create_button(60, 60, "", sprite[ItemType.GEM_ORANGE], 3); this.inv_buttons[ItemType.GEM_ORANGE].id = ItemType.GEM_ORANGE; this.inv_buttons[ItemType.GEM_ORANGE].info.img[2] = this.inv_buttons[ItemType.GEM_ORANGE].info.img[0]; this.inv_buttons[ItemType.CROWN_ORANGE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CROWN_ORANGE], 3); this.inv_buttons[ItemType.CROWN_ORANGE].id = ItemType.CROWN_ORANGE; this.inv_buttons[ItemType.GEM_BLUE] = gui_create_button(60, 60, "", sprite[ItemType.GEM_BLUE], 3); this.inv_buttons[ItemType.GEM_BLUE].id = ItemType.GEM_BLUE; this.inv_buttons[ItemType.GEM_BLUE].info.img[2] = this.inv_buttons[ItemType.GEM_BLUE].info.img[0]; this.inv_buttons[ItemType.CROWN_BLUE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CROWN_BLUE], 3); this.inv_buttons[ItemType.CROWN_BLUE].id = ItemType.CROWN_BLUE; this.inv_buttons[ItemType.HOOD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_HOOD], 3); this.inv_buttons[ItemType.HOOD].id = ItemType.HOOD; this.inv_buttons[ItemType.PEASANT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PEASANT], 3); this.inv_buttons[ItemType.PEASANT].id = ItemType.PEASANT; this.inv_buttons[ItemType.WINTER_PEASANT_FUR] = gui_create_button(60, 60, "", sprite[ItemType.WINTER_HOOD_FUR], 3); this.inv_buttons[ItemType.WINTER_PEASANT_FUR].id = ItemType.WINTER_PEASANT_FUR; this.inv_buttons[ItemType.WINTER_HOOD_FUR] = gui_create_button(60, 60, "", sprite[ItemType.WINTER_PEASANT_FUR], 3); this.inv_buttons[ItemType.WINTER_HOOD_FUR].id = ItemType.WINTER_HOOD_FUR; this.inv_buttons[ItemType.WINTER_PEASANT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WINTER_PEASANT], 3); this.inv_buttons[ItemType.WINTER_PEASANT].id = ItemType.WINTER_PEASANT; this.inv_buttons[ItemType.WINTER_HOOD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WINTER_HOOD], 3); this.inv_buttons[ItemType.WINTER_HOOD].id = ItemType.WINTER_HOOD; this.inv_buttons[ItemType.BUCKET_FULL] = gui_create_button(60, 60, "", sprite[ItemType.BUCKET_FULL], 3); this.inv_buttons[ItemType.BUCKET_FULL].id = ItemType.BUCKET_FULL; this.inv_buttons[ItemType.BUCKET_EMPTY] = gui_create_button(60, 60, "", sprite[ItemType.BUCKET_EMPTY], 3); this.inv_buttons[ItemType.BUCKET_EMPTY].id = ItemType.BUCKET_EMPTY; this.inv_buttons[ItemType.WELL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WELL], 3); this.inv_buttons[ItemType.WELL].id = ItemType.WELL; this.inv_buttons[ItemType.PUMPKIN_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PUMPKIN_SEED], 3); this.inv_buttons[ItemType.PUMPKIN_SEED].id = ItemType.PUMPKIN_SEED; this.inv_buttons[ItemType.PUMPKIN] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PUMPKIN], 3); this.inv_buttons[ItemType.PUMPKIN].id = ItemType.PUMPKIN; this.inv_buttons[ItemType.GARLIC_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GARLIC_SEED], 3); this.inv_buttons[ItemType.GARLIC_SEED].id = ItemType.GARLIC_SEED; this.inv_buttons[ItemType.GARLIC] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GARLIC], 3); this.inv_buttons[ItemType.GARLIC].id = ItemType.GARLIC; this.inv_buttons[ItemType.ROOF] = gui_create_button(60, 60, "", sprite[SPRITE.INV_ROOF], 3); this.inv_buttons[ItemType.ROOF].id = ItemType.ROOF; this.inv_buttons[ItemType.THORNBUSH_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_THORNBUSH_SEED], 3); this.inv_buttons[ItemType.THORNBUSH_SEED].id = ItemType.THORNBUSH_SEED; this.inv_buttons[ItemType.THORNBUSH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_THORNBUSH], 3); this.inv_buttons[ItemType.THORNBUSH].id = ItemType.THORNBUSH; this.inv_buttons[ItemType.CARROT_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CARROT_SEED], 3); this.inv_buttons[ItemType.CARROT_SEED].id = ItemType.CARROT_SEED; this.inv_buttons[ItemType.CARROT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CARROT], 3); this.inv_buttons[ItemType.CARROT].id = ItemType.CARROT; this.inv_buttons[ItemType.TOMATO_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_TOMATO_SEED], 3); this.inv_buttons[ItemType.TOMATO_SEED].id = ItemType.TOMATO_SEED; this.inv_buttons[ItemType.TOMATO] = gui_create_button(60, 60, "", sprite[SPRITE.INV_TOMATO], 3); this.inv_buttons[ItemType.TOMATO].id = ItemType.TOMATO; this.inv_buttons[ItemType.WATERMELON_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WATERMELON_SEED], 3); this.inv_buttons[ItemType.WATERMELON_SEED].id = ItemType.WATERMELON_SEED; this.inv_buttons[ItemType.WATERMELON] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WATERMELON], 3); this.inv_buttons[ItemType.WATERMELON].id = ItemType.WATERMELON; this.inv_buttons[ItemType.ALOE_VERA_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_ALOE_VERA_SEED], 3); this.inv_buttons[ItemType.ALOE_VERA_SEED].id = ItemType.ALOE_VERA_SEED; this.inv_buttons[ItemType.ALOE_VERA] = gui_create_button(60, 60, "", sprite[SPRITE.INV_ALOE_VERA], 3); this.inv_buttons[ItemType.ALOE_VERA].id = ItemType.ALOE_VERA; //Christmas this.inv_buttons[ItemType.CHRISTMAS_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CHRISTMAS_HAT], 3); this.inv_buttons[ItemType.CHRISTMAS_HAT].id = ItemType.CHRISTMAS_HAT; this.inv_buttons[ItemType.ELF_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_ELF_HAT], 3); this.inv_buttons[ItemType.ELF_HAT].id = ItemType.ELF_HAT; this.inv_buttons[ItemType.WOOD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_SPEAR], 3); this.inv_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.inv_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_SPEAR], 3); this.inv_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.inv_buttons[ItemType.CRAB_STICK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CRAB_STICK], 3); this.inv_buttons[ItemType.CRAB_STICK].id = ItemType.CRAB_STICK; this.inv_buttons[ItemType.CRAB_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CRAB_SPEAR], 3); this.inv_buttons[ItemType.CRAB_SPEAR].id = ItemType.CRAB_SPEAR; this.inv_buttons[ItemType.CRAB_LOOT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CRAB_LOOT], 3); this.inv_buttons[ItemType.CRAB_LOOT].id = ItemType.CRAB_LOOT; this.inv_buttons[ItemType.BED] = gui_create_button(60, 60, "", sprite[SPRITE.INV_BED], 3); this.inv_buttons[ItemType.BED].id = ItemType.BED; this.inv_buttons[ItemType.CRAB_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CROWN_CRAB], 3); this.inv_buttons[ItemType.CRAB_HELMET].id = ItemType.CRAB_HELMET; //Christmas this.inv_buttons[ItemType.GARLAND] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GARLAND], 3); this.inv_buttons[ItemType.GARLAND].id = ItemType.GARLAND; this.inv_buttons[ItemType.CANDY] = gui_create_button(60, 60, "", sprite[ItemType.CANDY], 3); this.inv_buttons[ItemType.CANDY].id = ItemType.CANDY; this.inv_buttons[ItemType.SUGAR_CAN] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SUGAR_CAN], 3); this.inv_buttons[ItemType.SUGAR_CAN].id = ItemType.SUGAR_CAN; this.craft_buttons = []; this.craft_buttons[ItemType.STONE_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SWORD], 3); this.craft_buttons[ItemType.STONE_SWORD].id = ItemType.STONE_SWORD; this.craft_buttons[ItemType.STONE_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK], 3); this.craft_buttons[ItemType.STONE_PICK].id = ItemType.STONE_PICK; this.craft_buttons[ItemType.FIRE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_FIRE], 3); this.craft_buttons[ItemType.FIRE].id = ItemType.FIRE; this.craft_buttons[ItemType.WORKBENCH] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WORK], 3); this.craft_buttons[ItemType.WORKBENCH].id = ItemType.WORKBENCH; this.craft_buttons[ItemType.WOOD_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WALL], 3); this.craft_buttons[ItemType.WOOD_WALL].id = ItemType.WOOD_WALL; this.craft_buttons[ItemType.WOOD_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SPIKE], 3); this.craft_buttons[ItemType.WOOD_SPIKE].id = ItemType.WOOD_SPIKE; this.craft_buttons[ItemType.BERRY_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SEED], 3); this.craft_buttons[ItemType.BERRY_SEED].id = ItemType.BERRY_SEED; this.craft_buttons[ItemType.GOLD_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK_GOLD], 3); this.craft_buttons[ItemType.GOLD_PICK].id = ItemType.GOLD_PICK; this.craft_buttons[ItemType.DIAMOND_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK_DIAMOND], 3); this.craft_buttons[ItemType.DIAMOND_PICK].id = ItemType.DIAMOND_PICK; this.craft_buttons[ItemType.GOLD_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SWORD_GOLD], 3); this.craft_buttons[ItemType.GOLD_SWORD].id = ItemType.GOLD_SWORD; this.craft_buttons[ItemType.WOOD_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SWORD_WOOD], 3); this.craft_buttons[ItemType.WOOD_SWORD].id = ItemType.WOOD_SWORD; this.craft_buttons[ItemType.DIAMOND_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SWORD_DIAMOND], 3); this.craft_buttons[ItemType.DIAMOND_SWORD].id = ItemType.DIAMOND_SWORD; this.craft_buttons[ItemType.WOOD_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK_WOOD], 3); this.craft_buttons[ItemType.WOOD_PICK].id = ItemType.WOOD_PICK; this.craft_buttons[ItemType.COOKED_MEAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_COOKED_MEAT], 3); this.craft_buttons[ItemType.COOKED_MEAT].id = ItemType.COOKED_MEAT; this.craft_buttons[ItemType.BIG_FIRE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BIG_FIRE], 3); this.craft_buttons[ItemType.BIG_FIRE].id = ItemType.BIG_FIRE; this.craft_buttons[ItemType.BANDAGE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BANDAGE], 3); this.craft_buttons[ItemType.BANDAGE].id = ItemType.BANDAGE; this.craft_buttons[ItemType.STONE_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_WALL], 3); this.craft_buttons[ItemType.STONE_WALL].id = ItemType.STONE_WALL; this.craft_buttons[ItemType.GOLD_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_WALL], 3); this.craft_buttons[ItemType.GOLD_WALL].id = ItemType.GOLD_WALL; this.craft_buttons[ItemType.DIAMOND_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_WALL], 3); this.craft_buttons[ItemType.DIAMOND_WALL].id = ItemType.DIAMOND_WALL; this.craft_buttons[ItemType.WOOD_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DOOR_WOOD_CLOSE], 3); this.craft_buttons[ItemType.WOOD_DOOR].id = ItemType.WOOD_DOOR; this.craft_buttons[ItemType.CHEST] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CHEST], 3); this.craft_buttons[ItemType.CHEST].id = ItemType.CHEST; this.craft_buttons[ItemType.STONE_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_SPIKE], 3); this.craft_buttons[ItemType.STONE_SPIKE].id = ItemType.STONE_SPIKE; this.craft_buttons[ItemType.GOLD_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_SPIKE], 3); this.craft_buttons[ItemType.GOLD_SPIKE].id = ItemType.GOLD_SPIKE; this.craft_buttons[ItemType.DIAMOND_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_SPIKE], 3); this.craft_buttons[ItemType.DIAMOND_SPIKE].id = ItemType.DIAMOND_SPIKE; this.craft_buttons[ItemType.BAG] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BAG], 3); this.craft_buttons[ItemType.BAG].id = ItemType.BAG; this.craft_buttons[ItemType.EARMUFFS] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EARMUFFS], 3); this.craft_buttons[ItemType.EARMUFFS].id = ItemType.EARMUFFS; this.craft_buttons[ItemType.STONE_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DOOR_STONE_CLOSE], 3); this.craft_buttons[ItemType.STONE_DOOR].id = ItemType.STONE_DOOR; this.craft_buttons[ItemType.GOLD_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DOOR_GOLD_CLOSE], 3); this.craft_buttons[ItemType.GOLD_DOOR].id = ItemType.GOLD_DOOR; this.craft_buttons[ItemType.DIAMOND_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DOOR_DIAMOND_CLOSE], 3); this.craft_buttons[ItemType.DIAMOND_DOOR].id = ItemType.DIAMOND_DOOR; this.craft_buttons[ItemType.EARMUFFS] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EARMUFFS], 3); this.craft_buttons[ItemType.EARMUFFS].id = ItemType.EARMUFFS; this.craft_buttons[ItemType.COAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_COAT], 3); this.craft_buttons[ItemType.COAT].id = ItemType.COAT; this.craft_buttons[ItemType.WOOD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_SPEAR], 3); this.craft_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.craft_buttons[ItemType.STONE_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SPEAR], 3); this.craft_buttons[ItemType.STONE_SPEAR].id = ItemType.STONE_SPEAR; this.craft_buttons[ItemType.GOLD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_SPEAR], 3); this.craft_buttons[ItemType.GOLD_SPEAR].id = ItemType.GOLD_SPEAR; this.craft_buttons[ItemType.DIAMOND_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_SPEAR], 3); this.craft_buttons[ItemType.DIAMOND_SPEAR].id = ItemType.DIAMOND_SPEAR; this.craft_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DRAGON_SPEAR], 3); this.craft_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.craft_buttons[ItemType.FURNACE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_FURNACE], 3); this.craft_buttons[ItemType.FURNACE].id = ItemType.FURNACE; this.craft_buttons[ItemType.EXPLORER_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EXPLORER_HAT], 3); this.craft_buttons[ItemType.EXPLORER_HAT].id = ItemType.EXPLORER_HAT; this.craft_buttons[ItemType.PIRATE_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PIRATE_HAT], 3); this.craft_buttons[ItemType.PIRATE_HAT].id = ItemType.PIRATE_HAT; this.craft_buttons[ItemType.FUR_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_FUR_HAT], 3); this.craft_buttons[ItemType.FUR_HAT].id = ItemType.FUR_HAT; this.craft_buttons[ItemType.TURBAN1] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_TURBAN1], 3); this.craft_buttons[ItemType.TURBAN1].id = ItemType.TURBAN1; this.craft_buttons[ItemType.TURBAN2] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_TURBAN2], 3); this.craft_buttons[ItemType.TURBAN2].id = ItemType.TURBAN2; this.craft_buttons[ItemType.WOOD_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_BOW], 3); this.craft_buttons[ItemType.WOOD_BOW].id = ItemType.WOOD_BOW; this.craft_buttons[ItemType.WOOD_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_ARROW], 3); this.craft_buttons[ItemType.WOOD_ARROW].id = ItemType.WOOD_ARROW; this.craft_buttons[ItemType.WOOD_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_SHIELD], 3); this.craft_buttons[ItemType.WOOD_SHIELD].id = ItemType.WOOD_SHIELD; this.craft_buttons[ItemType.STONE_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_BOW], 3); this.craft_buttons[ItemType.STONE_BOW].id = ItemType.STONE_BOW; this.craft_buttons[ItemType.STONE_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_ARROW], 3); this.craft_buttons[ItemType.STONE_ARROW].id = ItemType.STONE_ARROW; this.craft_buttons[ItemType.STONE_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_SHIELD], 3); this.craft_buttons[ItemType.STONE_SHIELD].id = ItemType.STONE_SHIELD; this.craft_buttons[ItemType.GOLD_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_BOW], 3); this.craft_buttons[ItemType.GOLD_BOW].id = ItemType.GOLD_BOW; this.craft_buttons[ItemType.GOLD_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_ARROW], 3); this.craft_buttons[ItemType.GOLD_ARROW].id = ItemType.GOLD_ARROW; this.craft_buttons[ItemType.GOLD_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_SHIELD], 3); this.craft_buttons[ItemType.GOLD_SHIELD].id = ItemType.GOLD_SHIELD; this.craft_buttons[ItemType.DIAMOND_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_BOW], 3); this.craft_buttons[ItemType.DIAMOND_BOW].id = ItemType.DIAMOND_BOW; this.craft_buttons[ItemType.DIAMOND_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_ARROW], 3); this.craft_buttons[ItemType.DIAMOND_ARROW].id = ItemType.DIAMOND_ARROW; this.craft_buttons[ItemType.DIAMOND_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_SHIELD], 3); this.craft_buttons[ItemType.DIAMOND_SHIELD].id = ItemType.DIAMOND_SHIELD; this.craft_buttons[ItemType.AMETHYST_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_BOW], 3); this.craft_buttons[ItemType.AMETHYST_BOW].id = ItemType.AMETHYST_BOW; this.craft_buttons[ItemType.AMETHYST_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_ARROW], 3); this.craft_buttons[ItemType.AMETHYST_ARROW].id = ItemType.AMETHYST_ARROW; this.craft_buttons[ItemType.AMETHYST_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_SHIELD], 3); this.craft_buttons[ItemType.AMETHYST_SHIELD].id = ItemType.AMETHYST_SHIELD; this.craft_buttons[ItemType.REIDITE_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_BOW], 3); this.craft_buttons[ItemType.REIDITE_BOW].id = ItemType.REIDITE_BOW; this.craft_buttons[ItemType.REIDITE_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_ARROW], 3); this.craft_buttons[ItemType.REIDITE_ARROW].id = ItemType.REIDITE_ARROW; this.craft_buttons[ItemType.REIDITE_SHIELD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_SHIELD], 3); this.craft_buttons[ItemType.REIDITE_SHIELD].id = ItemType.REIDITE_SHIELD; this.craft_buttons[ItemType.DRAGON_BOW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DRAGON_BOW], 3); this.craft_buttons[ItemType.DRAGON_BOW].id = ItemType.DRAGON_BOW; this.craft_buttons[ItemType.DRAGON_ARROW] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DRAGON_ARROW], 3); this.craft_buttons[ItemType.DRAGON_ARROW].id = ItemType.DRAGON_ARROW; this.craft_buttons[ItemType.WOOD_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_HELMET], 3); this.craft_buttons[ItemType.WOOD_HELMET].id = ItemType.WOOD_HELMET; this.craft_buttons[ItemType.STONE_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_HELMET], 3); this.craft_buttons[ItemType.STONE_HELMET].id = ItemType.STONE_HELMET; this.craft_buttons[ItemType.GOLD_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_HELMET], 3); this.craft_buttons[ItemType.GOLD_HELMET].id = ItemType.GOLD_HELMET; this.craft_buttons[ItemType.DIAMOND_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_HELMET], 3); this.craft_buttons[ItemType.DIAMOND_HELMET].id = ItemType.DIAMOND_HELMET; this.craft_buttons[ItemType.BOOK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOOK], 3); this.craft_buttons[ItemType.BOOK].id = ItemType.BOOK; this.craft_buttons[ItemType.PAPER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PAPER], 3); this.craft_buttons[ItemType.PAPER].id = ItemType.PAPER; this.craft_buttons[ItemType.BAG] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BAG], 3); this.craft_buttons[ItemType.BAG].id = ItemType.BAG; this.craft_buttons[ItemType.AMETHYST_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SWORD_AMETHYST], 3); this.craft_buttons[ItemType.AMETHYST_SWORD].id = ItemType.AMETHYST_SWORD; this.craft_buttons[ItemType.AMETHYST_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK_AMETHYST], 3); this.craft_buttons[ItemType.AMETHYST_PICK].id = ItemType.AMETHYST_PICK; this.craft_buttons[ItemType.REIDITE_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PICK_REIDITE], 3); this.craft_buttons[ItemType.REIDITE_PICK].id = ItemType.REIDITE_PICK; this.craft_buttons[ItemType.AMETHYST_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_SPEAR], 3); this.craft_buttons[ItemType.AMETHYST_SPEAR].id = ItemType.AMETHYST_SPEAR; this.craft_buttons[ItemType.STONE_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HAMMER], 3); this.craft_buttons[ItemType.STONE_HAMMER].id = ItemType.STONE_HAMMER; this.craft_buttons[ItemType.GOLD_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HAMMER_GOLD], 3); this.craft_buttons[ItemType.GOLD_HAMMER].id = ItemType.GOLD_HAMMER; this.craft_buttons[ItemType.DIAMOND_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HAMMER_DIAMOND], 3); this.craft_buttons[ItemType.DIAMOND_HAMMER].id = ItemType.DIAMOND_HAMMER; this.craft_buttons[ItemType.AMETHYST_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HAMMER_AMETHYST], 3); this.craft_buttons[ItemType.AMETHYST_HAMMER].id = ItemType.AMETHYST_HAMMER; this.craft_buttons[ItemType.REIDITE_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HAMMER_REIDITE], 3); this.craft_buttons[ItemType.REIDITE_HAMMER].id = ItemType.REIDITE_HAMMER; this.craft_buttons[ItemType.AMETHYST_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_WALL], 3); this.craft_buttons[ItemType.AMETHYST_WALL].id = ItemType.AMETHYST_WALL; this.craft_buttons[ItemType.AMETHYST_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_SPIKE], 3); this.craft_buttons[ItemType.AMETHYST_SPIKE].id = ItemType.AMETHYST_SPIKE; this.craft_buttons[ItemType.AMETHYST_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DOOR_AMETHYST_CLOSE], 3); this.craft_buttons[ItemType.AMETHYST_DOOR].id = ItemType.AMETHYST_DOOR; this.craft_buttons[ItemType.CAP_SCARF] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CAP_SCARF], 3); this.craft_buttons[ItemType.CAP_SCARF].id = ItemType.CAP_SCARF; this.craft_buttons[ItemType.DIAMOND_CORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BLUE_CORD], 3); this.craft_buttons[ItemType.DIAMOND_CORD].id = ItemType.DIAMOND_CORD; this.craft_buttons[ItemType.LOCK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_LOCK], 3); this.craft_buttons[ItemType.LOCK].id = ItemType.LOCK; this.craft_buttons[ItemType.RESURRECTION] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_RESURRECTION], 3); this.craft_buttons[ItemType.RESURRECTION].id = ItemType.RESURRECTION; this.craft_buttons[ItemType.LOCK_PICK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_LOCKPICK], 3); this.craft_buttons[ItemType.LOCK_PICK].id = ItemType.LOCK_PICK; this.craft_buttons[ItemType.TOTEM] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_TOTEM], 3); this.craft_buttons[ItemType.TOTEM].id = ItemType.TOTEM; this.craft_buttons[ItemType.AMETHYST_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_HELMET], 3); this.craft_buttons[ItemType.AMETHYST_HELMET].id = ItemType.AMETHYST_HELMET; this.craft_buttons[ItemType.SUPER_HAMMER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SUPER_HAMMER], 3); this.craft_buttons[ItemType.SUPER_HAMMER].id = ItemType.SUPER_HAMMER; this.craft_buttons[ItemType.BRIDGE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BRIDGE], 3); this.craft_buttons[ItemType.BRIDGE].id = ItemType.BRIDGE; this.craft_buttons[ItemType.TOWER] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_TOWER], 3); this.craft_buttons[ItemType.TOWER].id = ItemType.TOWER; this.craft_buttons[ItemType.BOAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOAT], 3); this.craft_buttons[ItemType.BOAT].id = ItemType.BOAT; this.craft_buttons[ItemType.SLED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SLED], 3); this.craft_buttons[ItemType.SLED].id = ItemType.SLED; this.craft_buttons[ItemType.PLANE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PLANE], 3); this.craft_buttons[ItemType.PLANE].id = ItemType.PLANE; this.craft_buttons[ItemType.SADDLE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SADDLE], 3); this.craft_buttons[ItemType.SADDLE].id = ItemType.SADDLE; this.craft_buttons[ItemType.BOTTLE_EMPTY] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOTTLE_EMPTY], 3); this.craft_buttons[ItemType.BOTTLE_EMPTY].id = ItemType.BOTTLE_EMPTY; this.craft_buttons[ItemType.BOTTLE_FULL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOTTLE_FULL], 3); this.craft_buttons[ItemType.BOTTLE_FULL].id = ItemType.BOTTLE_FULL; this.craft_buttons[ItemType.BOTTLE_FULL_2] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOTTLE_FULL], 3); this.craft_buttons[ItemType.BOTTLE_FULL_2].id = ItemType.BOTTLE_FULL_2; this.craft_buttons[ItemType.BOTTLE_FULL_3] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BOTTLE_FULL], 3); this.craft_buttons[ItemType.BOTTLE_FULL_3].id = ItemType.BOTTLE_FULL_3; this.craft_buttons[ItemType.STONE_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SHOVEL], 3); this.craft_buttons[ItemType.STONE_SHOVEL].id = ItemType.STONE_SHOVEL; this.craft_buttons[ItemType.GOLD_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SHOVEL_GOLD], 3); this.craft_buttons[ItemType.GOLD_SHOVEL].id = ItemType.GOLD_SHOVEL; this.craft_buttons[ItemType.DIAMOND_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SHOVEL_DIAMOND], 3); this.craft_buttons[ItemType.DIAMOND_SHOVEL].id = ItemType.DIAMOND_SHOVEL; this.craft_buttons[ItemType.AMETHYST_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SHOVEL_AMETHYST], 3); this.craft_buttons[ItemType.AMETHYST_SHOVEL].id = ItemType.AMETHYST_SHOVEL; this.craft_buttons[ItemType.REIDITE_SHOVEL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SHOVEL_REIDITE], 3); this.craft_buttons[ItemType.REIDITE_SHOVEL].id = ItemType.REIDITE_SHOVEL; this.craft_buttons[ItemType.WRENCH] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SPANNER], 3); this.craft_buttons[ItemType.WRENCH].id = ItemType.WRENCH; this.craft_buttons[ItemType.GOLD_WRENCH] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_WRENCH], 3); this.craft_buttons[ItemType.GOLD_WRENCH].id = ItemType.GOLD_WRENCH; this.craft_buttons[ItemType.WATERING_CAN_EMPTY] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WATERING_CAN], 3); this.craft_buttons[ItemType.WATERING_CAN_EMPTY].id = ItemType.WATERING_CAN_EMPTY; this.craft_buttons[ItemType.WHEAT_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WHEAT_SEED], 3); this.craft_buttons[ItemType.WHEAT_SEED].id = ItemType.WHEAT_SEED; this.craft_buttons[ItemType.COOKIE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_COOKIE], 3); this.craft_buttons[ItemType.COOKIE].id = ItemType.COOKIE; this.craft_buttons[ItemType.WINDMILL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WINDMILL], 3); this.craft_buttons[ItemType.WINDMILL].id = ItemType.WINDMILL; this.craft_buttons[ItemType.SUPER_DIVING_SUIT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SUPER_DIVING_SUIT], 3); this.craft_buttons[ItemType.SUPER_DIVING_SUIT].id = ItemType.SUPER_DIVING_SUIT; this.craft_buttons[ItemType.DIVING_MASK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIVING_MASK], 3); this.craft_buttons[ItemType.DIVING_MASK].id = ItemType.DIVING_MASK; this.craft_buttons[ItemType.WATERING_CAN_FULL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WATERING_CAN_FULL], 3); this.craft_buttons[ItemType.WATERING_CAN_FULL].id = ItemType.WATERING_CAN_FULL; this.craft_buttons[ItemType.CAKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CAKE], 3); this.craft_buttons[ItemType.CAKE].id = ItemType.CAKE; this.craft_buttons[ItemType.BREAD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BREAD], 3); this.craft_buttons[ItemType.BREAD].id = ItemType.BREAD; this.craft_buttons[ItemType.FISH_COOKED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_FOODFISH_COOKED], 3); this.craft_buttons[ItemType.FISH_COOKED].id = ItemType.FISH_COOKED; this.craft_buttons[ItemType.PLOT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PLOT], 3); this.craft_buttons[ItemType.PLOT].id = ItemType.PLOT; this.craft_buttons[ItemType.BREAD_OVEN] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BREAD_OVEN], 3); this.craft_buttons[ItemType.BREAD_OVEN].id = ItemType.BREAD_OVEN; this.craft_buttons[ItemType.SANDWICH] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_SANDWICH], 3); this.craft_buttons[ItemType.SANDWICH].id = ItemType.SANDWICH; this.craft_buttons[ItemType.DRAGON_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DRAGON_HELMET], 3); this.craft_buttons[ItemType.DRAGON_HELMET].id = ItemType.DRAGON_HELMET; this.craft_buttons[ItemType.DRAGON_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DRAGON_SWORD], 3); this.craft_buttons[ItemType.DRAGON_SWORD].id = ItemType.DRAGON_SWORD; this.craft_buttons[ItemType.CROWN_GREEN] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CROWN_GREEN], 3); this.craft_buttons[ItemType.CROWN_GREEN].id = ItemType.CROWN_GREEN; this.craft_buttons[ItemType.CROWN_ORANGE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CROWN_ORANGE], 3); this.craft_buttons[ItemType.CROWN_ORANGE].id = ItemType.CROWN_ORANGE; this.craft_buttons[ItemType.CROWN_BLUE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CROWN_BLUE], 3); this.craft_buttons[ItemType.CROWN_BLUE].id = ItemType.CROWN_BLUE; this.craft_buttons[ItemType.HOOD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_HOOD], 3); this.craft_buttons[ItemType.HOOD].id = ItemType.HOOD; this.craft_buttons[ItemType.PEASANT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PEASANT], 3); this.craft_buttons[ItemType.PEASANT].id = ItemType.PEASANT; this.craft_buttons[ItemType.WINTER_PEASANT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WINTER_PEASANT], 3); this.craft_buttons[ItemType.WINTER_PEASANT].id = ItemType.WINTER_PEASANT; this.craft_buttons[ItemType.WINTER_HOOD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WINTER_HOOD], 3); this.craft_buttons[ItemType.WINTER_HOOD].id = ItemType.WINTER_HOOD; this.craft_buttons[ItemType.BUCKET_FULL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BUCKET_FULL], 3); this.craft_buttons[ItemType.BUCKET_FULL].id = ItemType.BUCKET_FULL; this.craft_buttons[ItemType.BUCKET_EMPTY] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BUCKET_EMPTY], 3); this.craft_buttons[ItemType.BUCKET_EMPTY].id = ItemType.BUCKET_EMPTY; this.craft_buttons[ItemType.WELL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WELL], 3); this.craft_buttons[ItemType.WELL].id = ItemType.WELL; this.craft_buttons[ItemType.PUMPKIN_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PUMPKIN_SEED], 3); this.craft_buttons[ItemType.PUMPKIN_SEED].id = ItemType.PUMPKIN_SEED; this.craft_buttons[ItemType.GARLIC_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GARLIC_SEED], 3); this.craft_buttons[ItemType.GARLIC_SEED].id = ItemType.GARLIC_SEED; this.craft_buttons[ItemType.ROOF] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_ROOF], 3); this.craft_buttons[ItemType.ROOF].id = ItemType.ROOF; this.craft_buttons[ItemType.THORNBUSH_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_THORNBUSH_SEED], 3); this.craft_buttons[ItemType.THORNBUSH_SEED].id = ItemType.THORNBUSH_SEED; this.craft_buttons[ItemType.TOMATO_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_TOMATO_SEED], 3); this.craft_buttons[ItemType.TOMATO_SEED].id = ItemType.TOMATO_SEED; this.craft_buttons[ItemType.CARROT_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CARROT_SEED], 3); this.craft_buttons[ItemType.CARROT_SEED].id = ItemType.CARROT_SEED; this.craft_buttons[ItemType.WATERMELON_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WATERMELON_SEED], 3); this.craft_buttons[ItemType.WATERMELON_SEED].id = ItemType.WATERMELON_SEED; this.craft_buttons[ItemType.ALOE_VERA_SEED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_ALOE_VERA_SEED], 3); this.craft_buttons[ItemType.ALOE_VERA_SEED].id = ItemType.ALOE_VERA_SEED; this.craft_buttons[ItemType.WOOD_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_SPEAR], 3); this.craft_buttons[ItemType.WOOD_SPEAR].id = ItemType.WOOD_SPEAR; this.craft_buttons[ItemType.DRAGON_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DRAGON_SPEAR], 3); this.craft_buttons[ItemType.DRAGON_SPEAR].id = ItemType.DRAGON_SPEAR; this.craft_buttons[ItemType.CRAB_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CRAB_SPEAR], 3); this.craft_buttons[ItemType.CRAB_SPEAR].id = ItemType.CRAB_SPEAR; this.craft_buttons[ItemType.BED] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_BED], 3); this.craft_buttons[ItemType.BED].id = ItemType.BED; this.craft_buttons[ItemType.CRAB_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CROWN_CRAB], 3); this.craft_buttons[ItemType.CRAB_HELMET].id = ItemType.CRAB_HELMET; this.chest_buttons[ItemType.PITCHFORK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PITCHFORK], 3); this.chest_buttons[ItemType.PITCHFORK].id = ItemType.PITCHFORK; this.inv_buttons[ItemType.PITCHFORK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PITCHFORK], 3); this.inv_buttons[ItemType.PITCHFORK].id = ItemType.PITCHFORK; this.craft_buttons[ItemType.PITCHFORK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PITCHFORK], 3); this.craft_buttons[ItemType.PITCHFORK].id = ItemType.PITCHFORK; this.chest_buttons[ItemType.GOLD_PITCHFORK] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PITCHFORK2], 3); this.chest_buttons[ItemType.GOLD_PITCHFORK].id = ItemType.GOLD_PITCHFORK; this.inv_buttons[ItemType.GOLD_PITCHFORK] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PITCHFORK2], 3); this.inv_buttons[ItemType.GOLD_PITCHFORK].id = ItemType.GOLD_PITCHFORK; this.craft_buttons[ItemType.GOLD_PITCHFORK] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PITCHFORK2], 3); this.craft_buttons[ItemType.GOLD_PITCHFORK].id = ItemType.GOLD_PITCHFORK; this.chest_buttons[ItemType.MACHETE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_MACHETE], 3); this.chest_buttons[ItemType.MACHETE].id = ItemType.MACHETE; this.inv_buttons[ItemType.MACHETE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_MACHETE], 3); this.inv_buttons[ItemType.MACHETE].id = ItemType.MACHETE; this.craft_buttons[ItemType.MACHETE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_MACHETE], 3); this.craft_buttons[ItemType.MACHETE].id = ItemType.MACHETE; this.chest_buttons[ItemType.PILOT_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PILOT_HELMET], 3); this.chest_buttons[ItemType.PILOT_HAT].id = ItemType.PILOT_HAT; this.inv_buttons[ItemType.PILOT_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PILOT_HELMET], 3); this.inv_buttons[ItemType.PILOT_HAT].id = ItemType.PILOT_HAT; this.craft_buttons[ItemType.PILOT_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_PILOT_HELMET], 3); this.craft_buttons[ItemType.PILOT_HAT].id = ItemType.PILOT_HAT; this.chest_buttons[ItemType.PITCHFORK_PART] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PITCHFORK_PART], 3); this.chest_buttons[ItemType.PITCHFORK_PART].id = ItemType.PITCHFORK_PART; this.inv_buttons[ItemType.PITCHFORK_PART] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PITCHFORK_PART], 3); this.inv_buttons[ItemType.PITCHFORK_PART].id = ItemType.PITCHFORK_PART; this.chest_buttons[ItemType.SANDWORM_JUICE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_SANDWORM_JUICE], 3); this.chest_buttons[ItemType.SANDWORM_JUICE].id = ItemType.SANDWORM_JUICE; this.inv_buttons[ItemType.SANDWORM_JUICE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_SANDWORM_JUICE], 3); this.inv_buttons[ItemType.SANDWORM_JUICE].id = ItemType.SANDWORM_JUICE; this.chest_buttons[ItemType.PILOT_GLASSES] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_PILOT_GLASSES], 3); this.chest_buttons[ItemType.PILOT_GLASSES].id = ItemType.PILOT_GLASSES; this.inv_buttons[ItemType.PILOT_GLASSES] = gui_create_button(60, 60, "", sprite[SPRITE.INV_PILOT_GLASSES], 3); this.inv_buttons[ItemType.PILOT_GLASSES].id = ItemType.PILOT_GLASSES; this.chest_buttons[ItemType.EMERALD_MACHINE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EMERALD_MACHINE], 3); this.chest_buttons[ItemType.EMERALD_MACHINE].id = ItemType.EMERALD_MACHINE; this.inv_buttons[ItemType.EMERALD_MACHINE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EMERALD_MACHINE], 3); this.inv_buttons[ItemType.EMERALD_MACHINE].id = ItemType.EMERALD_MACHINE; this.craft_buttons[ItemType.EMERALD_MACHINE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EMERALD_MACHINE], 3); this.craft_buttons[ItemType.EMERALD_MACHINE].id = ItemType.EMERALD_MACHINE; this.chest_buttons[ItemType.WOOD_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WOOD_DOOR_SPIKE], 3); this.chest_buttons[ItemType.WOOD_DOOR_SPIKE].id = ItemType.WOOD_DOOR_SPIKE; this.inv_buttons[ItemType.WOOD_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WOOD_DOOR_SPIKE], 3); this.inv_buttons[ItemType.WOOD_DOOR_SPIKE].id = ItemType.WOOD_DOOR_SPIKE; this.craft_buttons[ItemType.WOOD_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WOOD_DOOR_SPIKE], 3); this.craft_buttons[ItemType.WOOD_DOOR_SPIKE].id = ItemType.WOOD_DOOR_SPIKE; this.chest_buttons[ItemType.STONE_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_STONE_DOOR_SPIKE], 3); this.chest_buttons[ItemType.STONE_DOOR_SPIKE].id = ItemType.STONE_DOOR_SPIKE; this.inv_buttons[ItemType.STONE_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_STONE_DOOR_SPIKE], 3); this.inv_buttons[ItemType.STONE_DOOR_SPIKE].id = ItemType.STONE_DOOR_SPIKE; this.craft_buttons[ItemType.STONE_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_STONE_DOOR_SPIKE], 3); this.craft_buttons[ItemType.STONE_DOOR_SPIKE].id = ItemType.STONE_DOOR_SPIKE; this.chest_buttons[ItemType.GOLD_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_GOLD_DOOR_SPIKE], 3); this.chest_buttons[ItemType.GOLD_DOOR_SPIKE].id = ItemType.GOLD_DOOR_SPIKE; this.inv_buttons[ItemType.GOLD_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_GOLD_DOOR_SPIKE], 3); this.inv_buttons[ItemType.GOLD_DOOR_SPIKE].id = ItemType.GOLD_DOOR_SPIKE; this.craft_buttons[ItemType.GOLD_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_GOLD_DOOR_SPIKE], 3); this.craft_buttons[ItemType.GOLD_DOOR_SPIKE].id = ItemType.GOLD_DOOR_SPIKE; this.chest_buttons[ItemType.DIAMOND_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_DOOR_SPIKE], 3); this.chest_buttons[ItemType.DIAMOND_DOOR_SPIKE].id = ItemType.DIAMOND_DOOR_SPIKE; this.inv_buttons[ItemType.DIAMOND_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_DOOR_SPIKE], 3); this.inv_buttons[ItemType.DIAMOND_DOOR_SPIKE].id = ItemType.DIAMOND_DOOR_SPIKE; this.craft_buttons[ItemType.DIAMOND_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_DOOR_SPIKE], 3); this.craft_buttons[ItemType.DIAMOND_DOOR_SPIKE].id = ItemType.DIAMOND_DOOR_SPIKE; this.chest_buttons[ItemType.AMETHYST_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_DOOR_SPIKE], 3); this.chest_buttons[ItemType.AMETHYST_DOOR_SPIKE].id = ItemType.AMETHYST_DOOR_SPIKE; this.inv_buttons[ItemType.AMETHYST_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_DOOR_SPIKE], 3); this.inv_buttons[ItemType.AMETHYST_DOOR_SPIKE].id = ItemType.AMETHYST_DOOR_SPIKE; this.craft_buttons[ItemType.AMETHYST_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_DOOR_SPIKE], 3); this.craft_buttons[ItemType.AMETHYST_DOOR_SPIKE].id = ItemType.AMETHYST_DOOR_SPIKE; this.chest_buttons[ItemType.REIDITE_DOOR_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_DOOR_SPIKE], 3); this.chest_buttons[ItemType.REIDITE_DOOR_SPIKE].id = ItemType.REIDITE_DOOR_SPIKE; this.inv_buttons[ItemType.REIDITE_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_DOOR_SPIKE], 3); this.inv_buttons[ItemType.REIDITE_DOOR_SPIKE].id = ItemType.REIDITE_DOOR_SPIKE; this.craft_buttons[ItemType.REIDITE_DOOR_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_DOOR_SPIKE], 3); this.craft_buttons[ItemType.REIDITE_DOOR_SPIKE].id = ItemType.REIDITE_DOOR_SPIKE; this.chest_buttons[ItemType.REIDITE_WALL] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_WALL], 3); this.chest_buttons[ItemType.REIDITE_WALL].id = ItemType.REIDITE_WALL; this.inv_buttons[ItemType.REIDITE_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_WALL], 3); this.inv_buttons[ItemType.REIDITE_WALL].id = ItemType.REIDITE_WALL; this.craft_buttons[ItemType.REIDITE_WALL] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_WALL], 3); this.craft_buttons[ItemType.REIDITE_WALL].id = ItemType.REIDITE_WALL; this.chest_buttons[ItemType.REIDITE_SPIKE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_SPIKE], 3); this.chest_buttons[ItemType.REIDITE_SPIKE].id = ItemType.REIDITE_SPIKE; this.inv_buttons[ItemType.REIDITE_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_SPIKE], 3); this.inv_buttons[ItemType.REIDITE_SPIKE].id = ItemType.REIDITE_SPIKE; this.craft_buttons[ItemType.REIDITE_SPIKE] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_SPIKE], 3); this.craft_buttons[ItemType.REIDITE_SPIKE].id = ItemType.REIDITE_SPIKE; this.chest_buttons[ItemType.REIDITE_DOOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_DOOR], 3); this.chest_buttons[ItemType.REIDITE_DOOR].id = ItemType.REIDITE_DOOR; this.inv_buttons[ItemType.REIDITE_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_DOOR], 3); this.inv_buttons[ItemType.REIDITE_DOOR].id = ItemType.REIDITE_DOOR; this.craft_buttons[ItemType.REIDITE_DOOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_DOOR], 3); this.craft_buttons[ItemType.REIDITE_DOOR].id = ItemType.REIDITE_DOOR; this.chest_buttons[ItemType.STONE_EXTRACTOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_STONE], 3); this.chest_buttons[ItemType.STONE_EXTRACTOR].id = ItemType.STONE_EXTRACTOR; this.inv_buttons[ItemType.STONE_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EXTRACTOR_MACHINE_STONE], 3); this.inv_buttons[ItemType.STONE_EXTRACTOR].id = ItemType.STONE_EXTRACTOR; this.craft_buttons[ItemType.STONE_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_STONE], 3); this.craft_buttons[ItemType.STONE_EXTRACTOR].id = ItemType.STONE_EXTRACTOR; this.chest_buttons[ItemType.GOLD_EXTRACTOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_GOLD], 3); this.chest_buttons[ItemType.GOLD_EXTRACTOR].id = ItemType.GOLD_EXTRACTOR; this.inv_buttons[ItemType.GOLD_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EXTRACTOR_MACHINE_GOLD], 3); this.inv_buttons[ItemType.GOLD_EXTRACTOR].id = ItemType.GOLD_EXTRACTOR; this.craft_buttons[ItemType.GOLD_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_GOLD], 3); this.craft_buttons[ItemType.GOLD_EXTRACTOR].id = ItemType.GOLD_EXTRACTOR; this.chest_buttons[ItemType.DIAMOND_EXTRACTOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_EXTRACTOR], 3); this.chest_buttons[ItemType.DIAMOND_EXTRACTOR].id = ItemType.DIAMOND_EXTRACTOR; this.inv_buttons[ItemType.DIAMOND_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_EXTRACTOR], 3); this.inv_buttons[ItemType.DIAMOND_EXTRACTOR].id = ItemType.DIAMOND_EXTRACTOR; this.craft_buttons[ItemType.DIAMOND_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_EXTRACTOR], 3); this.craft_buttons[ItemType.DIAMOND_EXTRACTOR].id = ItemType.DIAMOND_EXTRACTOR; this.chest_buttons[ItemType.AMETHYST_EXTRACTOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_AMETHYST], 3); this.chest_buttons[ItemType.AMETHYST_EXTRACTOR].id = ItemType.AMETHYST_EXTRACTOR; this.inv_buttons[ItemType.AMETHYST_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EXTRACTOR_MACHINE_AMETHYST], 3); this.inv_buttons[ItemType.AMETHYST_EXTRACTOR].id = ItemType.AMETHYST_EXTRACTOR; this.craft_buttons[ItemType.AMETHYST_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_AMETHYST], 3); this.craft_buttons[ItemType.AMETHYST_EXTRACTOR].id = ItemType.AMETHYST_EXTRACTOR; this.chest_buttons[ItemType.REIDITE_EXTRACTOR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_EXTRACTOR_MACHINE_REIDITE], 3); this.chest_buttons[ItemType.REIDITE_EXTRACTOR].id = ItemType.REIDITE_EXTRACTOR; this.inv_buttons[ItemType.REIDITE_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_EXTRACTOR_MACHINE_REIDITE], 3); this.inv_buttons[ItemType.REIDITE_EXTRACTOR].id = ItemType.REIDITE_EXTRACTOR; this.craft_buttons[ItemType.REIDITE_EXTRACTOR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_EXTRACTOR_MACHINE_REIDITE], 3); this.craft_buttons[ItemType.REIDITE_EXTRACTOR].id = ItemType.REIDITE_EXTRACTOR; // Magma biome this.chest_buttons[ItemType.FLAME] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FLAME], 3); this.chest_buttons[ItemType.FLAME].id = ItemType.FLAME; this.inv_buttons[ItemType.FLAME] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FLAME], 3); this.inv_buttons[ItemType.FLAME].id = ItemType.FLAME; this.inv_buttons[ItemType.FLAME].info.img[2] = this.inv_buttons[ItemType.FLAME].info.img[0]; this.chest_buttons[ItemType.LAVA_HEART] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_HEART], 3); this.chest_buttons[ItemType.LAVA_HEART].id = ItemType.LAVA_HEART; this.inv_buttons[ItemType.LAVA_HEART] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_HEART], 3); this.inv_buttons[ItemType.LAVA_HEART].id = ItemType.LAVA_HEART; this.inv_buttons[ItemType.LAVA_HEART].info.img[2] = this.inv_buttons[ItemType.LAVA_HEART].info.img[0]; this.chest_buttons[ItemType.REIDITE] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE], 3); this.chest_buttons[ItemType.REIDITE].id = ItemType.REIDITE; this.inv_buttons[ItemType.REIDITE] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE], 3); this.inv_buttons[ItemType.REIDITE].id = ItemType.REIDITE; this.inv_buttons[ItemType.REIDITE].info.img[2] = this.inv_buttons[ItemType.REIDITE].info.img[0]; this.chest_buttons[ItemType.REIDITE_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_SWORD], 3); this.chest_buttons[ItemType.REIDITE_SWORD].id = ItemType.REIDITE_SWORD; this.inv_buttons[ItemType.REIDITE_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_SWORD], 3); this.inv_buttons[ItemType.REIDITE_SWORD].id = ItemType.REIDITE_SWORD; this.craft_buttons[ItemType.REIDITE_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_SWORD], 3); this.craft_buttons[ItemType.REIDITE_SWORD].id = ItemType.REIDITE_SWORD; this.chest_buttons[ItemType.DIAMOND_PROTECTION] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_DIAMOND_PROTECTION], 3); this.chest_buttons[ItemType.DIAMOND_PROTECTION].id = ItemType.DIAMOND_PROTECTION; this.inv_buttons[ItemType.DIAMOND_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.INV_DIAMOND_PROTECTION], 3); this.inv_buttons[ItemType.DIAMOND_PROTECTION].id = ItemType.DIAMOND_PROTECTION; this.craft_buttons[ItemType.DIAMOND_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_DIAMOND_PROTECTION], 3); this.craft_buttons[ItemType.DIAMOND_PROTECTION].id = ItemType.DIAMOND_PROTECTION; this.chest_buttons[ItemType.AMETHYST_PROTECTION] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_AMETHYST_PROTECTION], 3); this.chest_buttons[ItemType.AMETHYST_PROTECTION].id = ItemType.AMETHYST_PROTECTION; this.inv_buttons[ItemType.AMETHYST_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.INV_AMETHYST_PROTECTION], 3); this.inv_buttons[ItemType.AMETHYST_PROTECTION].id = ItemType.AMETHYST_PROTECTION; this.craft_buttons[ItemType.AMETHYST_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_AMETHYST_PROTECTION], 3); this.craft_buttons[ItemType.AMETHYST_PROTECTION].id = ItemType.AMETHYST_PROTECTION; this.chest_buttons[ItemType.REIDITE_PROTECTION] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_PROTECTION], 3); this.chest_buttons[ItemType.REIDITE_PROTECTION].id = ItemType.REIDITE_PROTECTION; this.inv_buttons[ItemType.REIDITE_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_PROTECTION], 3); this.inv_buttons[ItemType.REIDITE_PROTECTION].id = ItemType.REIDITE_PROTECTION; this.craft_buttons[ItemType.REIDITE_PROTECTION] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_PROTECTION], 3); this.craft_buttons[ItemType.REIDITE_PROTECTION].id = ItemType.REIDITE_PROTECTION; this.chest_buttons[ItemType.LAVA_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_HELMET], 3); this.chest_buttons[ItemType.LAVA_HELMET].id = ItemType.LAVA_HELMET; this.inv_buttons[ItemType.LAVA_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_HELMET], 3); this.inv_buttons[ItemType.LAVA_HELMET].id = ItemType.LAVA_HELMET; this.craft_buttons[ItemType.LAVA_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_LAVA_HELMET], 3); this.craft_buttons[ItemType.LAVA_HELMET].id = ItemType.LAVA_HELMET; this.chest_buttons[ItemType.WITCH_HAT] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WITCH], 3); this.chest_buttons[ItemType.WITCH_HAT].id = ItemType.WITCH_HAT; this.inv_buttons[ItemType.WITCH_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WITCH], 3); this.inv_buttons[ItemType.WITCH_HAT].id = ItemType.WITCH_HAT; this.craft_buttons[ItemType.WITCH_HAT] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WITCH], 3); this.craft_buttons[ItemType.WITCH_HAT].id = ItemType.WITCH_HAT; this.chest_buttons[ItemType.WAND1] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WAND1], 3); this.chest_buttons[ItemType.WAND1].id = ItemType.WAND1; this.inv_buttons[ItemType.WAND1] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WAND1], 3); this.inv_buttons[ItemType.WAND1].id = ItemType.WAND1; this.craft_buttons[ItemType.WAND1] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WAND1], 3); this.craft_buttons[ItemType.WAND1].id = ItemType.WAND1; this.chest_buttons[ItemType.WAND2] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_WAND2], 3); this.chest_buttons[ItemType.WAND2].id = ItemType.WAND2; this.inv_buttons[ItemType.WAND2] = gui_create_button(60, 60, "", sprite[SPRITE.INV_WAND2], 3); this.inv_buttons[ItemType.WAND2].id = ItemType.WAND2; this.craft_buttons[ItemType.WAND2] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_WAND2], 3); this.craft_buttons[ItemType.WAND2].id = ItemType.WAND2; this.chest_buttons[ItemType.NIMBUS] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_NIMBUS], 3); this.chest_buttons[ItemType.NIMBUS].id = ItemType.NIMBUS; this.inv_buttons[ItemType.NIMBUS] = gui_create_button(60, 60, "", sprite[SPRITE.INV_NIMBUS], 3); this.inv_buttons[ItemType.NIMBUS].id = ItemType.NIMBUS; this.craft_buttons[ItemType.NIMBUS] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_NIMBUS], 3); this.craft_buttons[ItemType.NIMBUS].id = ItemType.NIMBUS; this.chest_buttons[ItemType.FIREFLY] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_FIREFLY], 3); this.chest_buttons[ItemType.FIREFLY].id = ItemType.FIREFLY; this.inv_buttons[ItemType.FIREFLY] = gui_create_button(60, 60, "", sprite[SPRITE.INV_FIREFLY], 3); this.inv_buttons[ItemType.FIREFLY].id = ItemType.FIREFLY; this.chest_buttons[ItemType.REIDITE_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_SPEAR], 3); this.chest_buttons[ItemType.REIDITE_SPEAR].id = ItemType.REIDITE_SPEAR; this.inv_buttons[ItemType.REIDITE_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_SPEAR], 3); this.inv_buttons[ItemType.REIDITE_SPEAR].id = ItemType.REIDITE_SPEAR; this.craft_buttons[ItemType.REIDITE_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_SPEAR], 3); this.craft_buttons[ItemType.REIDITE_SPEAR].id = ItemType.REIDITE_SPEAR; this.chest_buttons[ItemType.REIDITE_HELMET] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_REIDITE_HELMET], 3); this.chest_buttons[ItemType.REIDITE_HELMET].id = ItemType.REIDITE_HELMET; this.inv_buttons[ItemType.REIDITE_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.INV_REIDITE_HELMET], 3); this.inv_buttons[ItemType.REIDITE_HELMET].id = ItemType.REIDITE_HELMET; this.craft_buttons[ItemType.REIDITE_HELMET] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_REIDITE_HELMET], 3); this.craft_buttons[ItemType.REIDITE_HELMET].id = ItemType.REIDITE_HELMET; this.chest_buttons[ItemType.LAVA_SPEAR] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_SPEAR], 3); this.chest_buttons[ItemType.LAVA_SPEAR].id = ItemType.LAVA_SPEAR; this.inv_buttons[ItemType.LAVA_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_SPEAR], 3); this.inv_buttons[ItemType.LAVA_SPEAR].id = ItemType.LAVA_SPEAR; this.craft_buttons[ItemType.LAVA_SPEAR] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_LAVA_SPEAR], 3); this.craft_buttons[ItemType.LAVA_SPEAR].id = ItemType.LAVA_SPEAR; this.chest_buttons[ItemType.CURSED_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_CURSED_SWORD], 3); this.chest_buttons[ItemType.CURSED_SWORD].id = ItemType.CURSED_SWORD; this.inv_buttons[ItemType.CURSED_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_CURSED_SWORD], 3); this.inv_buttons[ItemType.CURSED_SWORD].id = ItemType.CURSED_SWORD; this.craft_buttons[ItemType.CURSED_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_CURSED_SWORD], 3); this.craft_buttons[ItemType.CURSED_SWORD].id = ItemType.CURSED_SWORD; this.chest_buttons[ItemType.LAVA_SWORD] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_SWORD], 3); this.chest_buttons[ItemType.LAVA_SWORD].id = ItemType.LAVA_SWORD; this.inv_buttons[ItemType.LAVA_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_SWORD], 3); this.inv_buttons[ItemType.LAVA_SWORD].id = ItemType.LAVA_SWORD; this.craft_buttons[ItemType.LAVA_SWORD] = gui_create_button(60, 60, "", sprite[SPRITE.CRAFT_LAVA_SWORD], 3); this.craft_buttons[ItemType.LAVA_SWORD].id = ItemType.LAVA_SWORD; this.chest_buttons[ItemType.LAVA_ORB] = gui_create_button(68, 68, "", sprite[SPRITE.CHEST_LAVA_ORB], 3); this.chest_buttons[ItemType.LAVA_ORB].id = ItemType.LAVA_ORB; this.inv_buttons[ItemType.LAVA_ORB] = gui_create_button(60, 60, "", sprite[SPRITE.INV_LAVA_ORB], 3); this.inv_buttons[ItemType.LAVA_ORB].id = ItemType.LAVA_ORB; this.update_craft_buttons = function () { var craft = user.craft.can_craft; var x = 10; var y = 10; for (var i = 0; i < craft.length; i++) { if (i > 0 && !(i % 4)) { x += craft[0].info.width + 10; y = 10; } craft[i].info.translate.x = x; craft[i].info.translate.y = y; y += 10 + craft[i].info.height; } }; this.update_chest_buttons = function () { var x = window.Math.floor(window.Math.floor((3 + user.craft.can_craft.length) / 4) * (10 + this.chest_buttons[ItemType.STONE_SWORD].info.img[0].width) + 35); for (var i = 0; i < this.chest_buttons.length; i++) { if (!this.chest_buttons[i]) continue; this.chest_buttons[i].info.translate.x = x; this.chest_buttons[i].info.translate.y = 22; } this.chest_lockpick.info.translate.x = x + 17; this.chest_lockpick.info.translate.y = 22 + sprite[SPRITE.CHEST_SLOT].height; this.chest_locked.info.translate.x = x + 17; this.chest_locked.info.translate.y = 30; this.chest_padlock.info.translate.x = x + 17; this.chest_padlock.info.translate.y = 22 + sprite[SPRITE.CHEST_SLOT].height; }; this.update_team_buttons = function () { var x = window.Math.floor((canw - sprite[SPRITE.TEAM_BUTTON][0].width) / 2); for (var i = 0; i < this.team_buttons.length; i++) { this.team_buttons[i].button.info.translate.x = x; this.team_buttons[i].button.info.translate.y = -13; } }; this.update_bread_oven_button = function () { var x = 12 + window.Math.floor(window.Math.floor((3 + user.craft.can_craft.length) / 4) * (10 + this.bread_oven_wood_button.info.img[0].width) + 35); this.bread_oven_wood_button.info.translate.x = x; this.bread_oven_wood_button.info.translate.y = 33; this.bread_oven_flour_button.info.translate.x = this.bread_oven_wood_button.info.translate.x; this.bread_oven_flour_button.info.translate.y = 137; this.bread_oven_bread_button.info.translate.x = this.bread_oven_wood_button.info.translate.x; this.bread_oven_bread_button.info.translate.y = 240; }; this.update_extractor_button = function () { var x = 12 + window.Math.floor(window.Math.floor((3 + user.craft.can_craft.length) / 4) * (10 + this.extractor_wood_button.info.img[0].width) + 35); this.extractor_wood_button.info.translate.x = x; this.extractor_wood_button.info.translate.y = 36; x += 83; this.extractor_stone_button.info.translate.x = x; this.extractor_stone_button.info.translate.y = 36; this.extractor_gold_button.info.translate.x = x; this.extractor_gold_button.info.translate.y = 36; this.extractor_diamond_button.info.translate.x = x; this.extractor_diamond_button.info.translate.y = 36; this.extractor_amethyst_button.info.translate.x = x; this.extractor_amethyst_button.info.translate.y = 36; this.extractor_reidite_button.info.translate.x = x; this.extractor_reidite_button.info.translate.y = 36; }; this.update_windmill_button = function () { var x = 12 + window.Math.floor(window.Math.floor((3 + user.craft.can_craft.length) / 4) * (10 + this.windmill_wheat_button.info.img[0].width) + 35); this.windmill_wheat_button.info.translate.x = x; this.windmill_wheat_button.info.translate.y = 36; x += 83; this.windmill_flour_button.info.translate.x = x; this.windmill_flour_button.info.translate.y = 36; }; this.update_furnace_button = function () { var x = window.Math.floor(window.Math.floor((3 + user.craft.can_craft.length) / 4) * (10 + this.furnace_button.info.img[0].width) + 35); this.furnace_button.info.translate.x = x; this.furnace_button.info.translate.y = 22; }; this.update_inv_buttons = function () { var inv = user.inv.can_select; if (inv.length > 0) var center = window.Math.floor((canw - (inv[0].info.width + 5) * user.inv.max) / 2); for (var i = 0; i < inv.length; i++) { inv[i].info.translate.x = center + (inv[i].info.width + 5) * i; inv[i].info.translate.y = canh - inv[i].info.width - 10; this.plus_buttons[inv[i].id].info.translate.x = inv[i].info.translate.x + 13; this.plus_buttons[inv[i].id].info.translate.y = inv[i].info.translate.y - this.plus_buttons[inv[i].id].info.img[0].height - 6; } }; /* Appear effect, all content appear from the bottom */ var appear_effect_step = 0; var appear_effect_max_step = 60; var appear_effect = function () { _this.update(); appear_effect_step++; if (appear_effect_step >= appear_effect_max_step) { _this.add_event_listener(); _this.update(); return; } window.setTimeout(appear_effect, CONFIG.frameTimeout); }; /* Quit UI with nice effect */ this.quit = function (fun) { /* Close the chat */ if (user.chat.open) user.chat.quit(); if (user.terminal.open) user.terminal.quit(); /* Close the team box */ window.document.getElementById("team_box").style.display = "none"; /* Close the market */ _this.market.style.display = "none"; _this.market.open = false; /* Close the shop */ window.document.getElementById("shop_starterkit").style.display = "none"; /* Close the homecraft button */ window.document.getElementById("home_craft").style.display = "none"; window.document.getElementById("recipe_craft").style.display = "none"; _this.craft_list.open = false; /* Close the options box */ window.document.getElementById("option_in_game").style.display = "none"; _this.options.open = false; /* Close the safe delete screen */ window.document.getElementById("sure_delete").style.display = "none"; _this.safe_delete.open = false; /* Close the safe cancel screen */ window.document.getElementById("cancel_sure_delete").style.display = "none"; _this.safe_cancel.open = false; /* Close the quests lists */ window.document.getElementById("chronoquest").style.display = "none"; _this.quests.open = false; /* Will be run after quit */ fun_after_quit = fun; /* Clean menu trigger */ _this.remove_event_listener(); _this.can.style.cursor = _this.cursor0; /* Make nice quit effect */ quit_effect_step = -1; quit_effect(); }; /* Quit effect, all content escape from the top */ var fun_after_quit; var quit_effect_step = -1; var quit_effect_max_step = 60; var quit_effect = function () { _this.update(); quit_effect_step++; if (quit_effect_step == quit_effect_max_step) { _this.stop(); fun_after_quit(); return; } window.setTimeout(quit_effect, CONFIG.frameTimeout); }; /* Check if user interface is running */ this.is_run = false; this.stop = function () { this.is_run = false; }; /* Run the user interface, make effect and add event listener */ this.run = function () { client.change_ground(); quit_effect_step = -1; appear_effect_step = 0; appear_effect(); }; /* Update position of object, usefull for trigger */ this.update = function () { this.leaderboard.translate.x = canw - this.leaderboard.img.width - 10; this.leaderboard.translate.y = 5; world.clock.translate.x = this.leaderboard.translate.x - sprite[SPRITE.CLOCK][0].width - 85; world.clock.translate.y = 10; this.craft_list.button.info.translate.x = this.leaderboard.translate.x - sprite[SPRITE.RECIPE_BUTTON][0].width - 10; this.craft_list.button.info.translate.y = 10; this.quests.button.info.translate.x = this.leaderboard.translate.x - sprite[SPRITE.QUEST_BUTTON][0].width - 20; this.quests.button.info.translate.y = this.craft_list.button.info.translate.y + sprite[SPRITE.RECIPE_BUTTON][0].height + 5; this.options.button.info.translate.x = this.leaderboard.translate.x - sprite[SPRITE.OPTION_BUTTON][0].width - 20; this.options.button.info.translate.y = this.quests.button.info.translate.y + sprite[SPRITE.OPTION_BUTTON][0].height + 18; this.market.button.info.translate.x = this.leaderboard.translate.x - sprite[SPRITE.MARKET_BUTTON][0].width - 20; this.market.button.info.translate.y = this.options.button.info.translate.y + sprite[SPRITE.MARKET_BUTTON][0].height; user.auto_feed.translate.x = this.leaderboard.translate.x - /*sprite[SPRITE.AUTO_FEED].width*/ 63 - 85; user.auto_feed.translate.y = 100; this.minimap.translate.y = canh - 3 - /*sprite[SPRITE.MINIMAP][0].height*/ 193; this.minimap.translate.x = canw - 3 - /*sprite[SPRITE.MINIMAP][0].width*/ 193; this.gauges.translate.x = 5; this.gauges.translate.y = canh - this.gauges.img.height - 5; this.shop.button.info.translate.x = canw2 - /*sprite[SPRITE.SHOP][0].width*/ 91 / 2; this.shop.button.info.translate.y = 50; this.update_craft_buttons(); this.update_inv_buttons(); this.update_chest_buttons(); this.update_furnace_button(); this.update_windmill_button(); this.update_extractor_button(); this.update_bread_oven_button(); this.update_team_buttons(); draw_team_buttons(); user.chat.update(); user.terminal.update(); this.team_box.update(); this.craft_list.home.update(); this.craft_list.list.update(); this.safe_delete.update(); this.safe_cancel.update(); this.quests.update(); this.shop.update(); this.options.update(); this.market.update(); var move_effect = 0; /* Appear effect */ if (appear_effect_step != appear_effect_max_step) { var move_effect = 1500 / (appear_effect_step + 1) - 24; // I substract 50 because at end, move effect do not down at 0 } /* Quit effect */ if (quit_effect_step != -1) { var move_effect = -(1500 / (quit_effect_max_step - quit_effect_step + 1) - 24); // I substract 48 for center correctly -> when quit_effect_step == 0 } this.shop.button.info.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.leaderboard.translate.y -= move_effect > 0 ? move_effect : -move_effect; user.auto_feed.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.craft_list.button.info.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.quests.button.info.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.options.button.info.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.market.button.info.translate.y -= move_effect > 0 ? move_effect : -move_effect; world.clock.translate.y -= move_effect > 0 ? move_effect : -move_effect; this.gauges.translate.y -= move_effect < 0 ? move_effect : -move_effect; this.minimap.translate.y -= move_effect < 0 ? move_effect : -move_effect; }; /* Draw user interface */ this.draw_UI = function () { /* Draw ui crafting */ if (!user.ghost.enabled && this.show_ui && !user.zombie) draw_ui_crafting(); /* Draw gear when you craft */ draw_ui_gear(); /* Draw chat */ draw_ui_chat(); if (this.show_ui) { /* Draw minimap */ draw_minimap(); /* Draw craft list button */ if (this.show_recipe_book === 1) this.craft_list.button.draw(ctx); /* Draw quests button */ if (world.mode !== WORLD.MODE_ZOMBIES && world.mode !== WORLD.MODE_LEGACY && world.mode !== WORLD.MODE_BR && this.show_quest === 1) this.quests.button.draw(ctx); /* Draw options button */ this.options.button.draw(ctx); /* Draw market button */ if (this.show_market === 1) this.market.button.draw(ctx); /* Draw leaderboard */ draw_leaderboard(); /* Draw microphone and headphones */ // draw_microphone(); /* Draw auto feed */ draw_status(); /* Draw gauges */ this.gauges.draw(); /* Draw UI weapon delay */ draw_weapon_switch_delay(); draw_helmet_switch_delay(); draw_build_delay(); /* Draw totem delay */ draw_totem_delay(); /* Draw ui inventory */ draw_ui_inventory(); /* Draw ui chest */ draw_chest_inventory(); /* Draw ui furnace */ draw_furnace_inventory(); /* Draw ui well */ draw_well_inventory(); /* Draw ui windmill */ draw_windmill_inventory(); /* Draw ui extractor */ draw_extractor_inventory(); /* Draw ui bread oven */ draw_bread_oven_inventory(); /* Draw team button */ draw_team_buttons(); /* Draw info box */ draw_info_box(); } /* Draw ui resurrection */ if (user.ghost.enabled) draw_resurrection_inventory(); /* Draw bigmap */ draw_bigmap(); /* Draw clock */ if (this.show_ui && this.show_clock === 1) draw_clock(); /* Draw welcome message */ user.welcome.draw(); /* Draw ui alert */ user.alert.draw(); if (this.show_ui) { /* Draw ui ghost */ user.ghost.draw(); /* Draw ui shop */ user.shop.draw(); /* Draw ui drag */ user.inv.drag.draw(mouse.pos.x, mouse.pos.y); } /* Draw reconnect */ draw_reconnect(); }; /* Update all scene component */ this.update_scene = function () { /* Update camera */ user.cam.update(); /* Update gauges */ user.gauges.update(); if (!user.reconnect.enabled && user.alive) { /* Update control of player */ user.control.update(); /* Update auto-feed if needed */ user.auto_feed.update(); } /* Update world */ world.update(); /* Update chrono quests */ this.quests.update_chrono(); }; /* Draw scene of the game, background, entities... */ this.draw_scene = function () { /* World drawing */ draw_world_with_effect(); }; /* Check connection component (ping and pong) */ this.update_connection = function () { client.try_ping(); client.update_cam(); }; this.draw = function () { /* Update connection component */ if (!user.reconnect.enabled && user.alive) this.update_connection(); /* Update scene component */ this.update_scene(); /* Draw world and entities */ this.draw_scene(); /* Draw user interface */ this.draw_UI(); }; this.trigger_keyup = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; if (user.chat.open && evt.keyCode === 27) user.chat.quit(); else if (user.terminal.open && evt.keyCode === 27) user.terminal.quit(); else if (!user.chat.open && !user.terminal.open && evt.keyCode == 79 && quit_effect_step == -1) user.terminal._open(); else if (evt.keyCode == 13 && quit_effect_step == -1) { if (user.terminal.open) user.terminal._send(); else user.chat.run(); } else if (!user.chat.open && !user.terminal.open) { if (evt.keyCode === 82) user.auto_feed.invert(); else if (evt.keyCode >= 49 && evt.keyCode <= 57) { if (user.craft.id < 0) { var i = evt.keyCode - 49; var button = user.inv.can_select[i]; if (button) client.select_inv(button.id, i); } } else if (evt.keyCode == 89) user.bigmap = !user.bigmap; else if (evt.keyCode == 71) user.craft.change_mode(); } if (user.terminal.open && evt.target === user.terminal.input) { if (evt.code === "ArrowUp") { if (user.terminal.lastCommands.length - user.terminal.commandIndex > 0) user.terminal.commandIndex++; user.terminal.input.value = user.terminal.lastCommands[user.terminal.lastCommands.length - user.terminal.commandIndex] ?? ""; } else if (evt.code === "ArrowDown") { if (user.terminal.commandIndex > 0) user.terminal.commandIndex--; user.terminal.input.value = user.terminal.lastCommands[user.terminal.lastCommands.length - user.terminal.commandIndex] ?? ""; } else if (evt.code === "Backspace") { user.terminal.commandIndex = 0; } } keyboard.up(evt); }; this.trigger_keydown = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; keyboard.down(evt); /* Prevent backspace if needed */ if (evt.keyCode == 8 && !user.chat.open && !user.terminal.open) evt.preventDefault(); }; this.trigger_mousedown = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); var click = false; /* Change marker on minimap */ if (user.craft.preview < 0) _this.minimap.focus(mouse.pos); /* Chest */ var chest = user.chest; if (user.craft.id < 0 && chest.id >= 1) { if (!user.chest.lock || user.chest.pid === user.id) click |= _this.chest_buttons[user.chest.id].trigger(_this.can, mouse.pos, MOUSE_DOWN); } /* Take flour from windmill */ var windmill = user.windmill; if (windmill.open && windmill.amount_flour > 0) { click |= _this.windmill_flour_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); } /* Take mineral from extractor */ var extractor = user.extractor; if (extractor.open && extractor.amount_mineral > 0) { click |= _this.extractor_stone_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); click |= _this.extractor_gold_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); click |= _this.extractor_diamond_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); click |= _this.extractor_amethyst_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); click |= _this.extractor_reidite_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); } /* Take bread from bread_oven */ var bread_oven = user.bread_oven; if (bread_oven.open && bread_oven.amount_bread > 0) { click |= _this.bread_oven_bread_button.trigger(_this.can, mouse.pos, MOUSE_DOWN); } /* Chest lock */ if (!user.chest.lock) { if (user.chest.padlock) click |= _this.chest_padlock.trigger(_this.can, mouse.pos, MOUSE_DOWN); } if (user.chest.lockpick) click |= _this.chest_lockpick.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (user.craft.id < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.options.open && !_this.market.open) { var buttons = user.inv.can_select; for (var i = 0; i < buttons.length; i++) { var ret = buttons[i].trigger(_this.can, mouse.pos, MOUSE_DOWN); click |= ret; if (ret) user.inv.drag.start(i, mouse.pos); if ((chest.open && (chest.id < 1 || chest.id == buttons[i].id)) || (user.furnace.open && buttons[i].id === ItemType.WOOD) || (user.well.open && buttons[i].id === ItemType.BUCKET_FULL) || (user.bread_oven.open && (buttons[i].id === ItemType.WOOD || buttons[i].id === ItemType.FLOUR)) || (user.windmill.open && buttons[i].id === ItemType.WHEAT) || (user.extractor.open && buttons[i].id === ItemType.WOOD)) { click |= _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_DOWN); } } } if (user.resurrection.open) click |= _this.resurrection.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (_this.team_buttons_id != -1) { click |= _this.team_buttons[_this.team_buttons_id].button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (click) var team_button = true; } else var team_button = false; if (user.craft.id < 0 && user.craft.preview < 0 && !team_button && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.market.open && !user.zombie) { var buttons = user.craft.can_craft; for (var i = 0; i < buttons.length; i++) { click |= buttons[i].trigger(_this.can, mouse.pos, MOUSE_DOWN); } } if (user.craft.id < 0 && user.craft.preview < 0 && user.shop.open && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) click |= _this.shop.button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (user.craft.preview < 0 && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) click |= _this.craft_list.button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) click |= _this.options.button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.options.open) click |= _this.market.button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.market.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && world.mode !== WORLD.MODE_ZOMBIES && world.mode !== WORLD.MODE_LEGACY && world.mode !== WORLD.MODE_BR) click |= _this.quests.button.trigger(_this.can, mouse.pos, MOUSE_DOWN); if (!click && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) { if (user.craft.preview >= 0) client.send_build(); else if (!team_button) mouse.down(); } }; this.trigger_mouseup = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); mouse.up(); if (user.inv.drag.release()) return; var chest = user.chest; var furnace = user.furnace; var well = user.well; var windmill = user.windmill; var extractor = user.extractor; var bread_oven = user.bread_oven; if (user.control.attack) { user.control.attack = 0; client.stop_attack(); } if (_this.team_buttons_id != -1) { var sel = _this.team_buttons[_this.team_buttons_id].button.trigger(_this.can, mouse.pos, MOUSE_UP); var style = window.document.getElementById("team_box").style; if (sel && style.display == "inline-block") { style.display = "none"; return; } else if (sel) _this.team_buttons[_this.team_buttons_id].action(); } /* Trigger of chest */ if (user.craft.id < 0 && chest.id >= 1 && !_this.safe_delete.open) { if (!user.chest.lock || user.chest.pid === user.id) { var sel = _this.chest_buttons[user.chest.id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_chest(); } } /* Take flour from windmill */ var windmill = user.windmill; if (windmill.open && windmill.amount_flour > 0 && !_this.safe_delete.open) { var sel = _this.windmill_flour_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_flour(); } /* Take mineral from extractor */ var extractor = user.extractor; if (extractor.open && extractor.amount_mineral > 0 && !_this.safe_delete.open) { switch (extractor.type) { case ITEMS.EXTRACTOR_MACHINE_STONE: var sel = _this.extractor_stone_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_extractor(extractor); break; case ITEMS.EXTRACTOR_MACHINE_GOLD: var sel = _this.extractor_gold_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_extractor(extractor); break; case ITEMS.DIAMOND_EXTRACTOR: var sel = _this.extractor_diamond_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_extractor(extractor); break; case ITEMS.EXTRACTOR_MACHINE_AMETHYST: var sel = _this.extractor_amethyst_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_extractor(extractor); break; case ITEMS.EXTRACTOR_MACHINE_REIDITE: var sel = _this.extractor_reidite_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_extractor(extractor); break; } } /* Take bread from bread_oven */ var bread_oven = user.bread_oven; if (bread_oven.open && bread_oven.amount_bread > 0 && !_this.safe_delete.open) { var sel = _this.bread_oven_bread_button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.take_bread(); } /* Trigger of chest mechanic (lock) */ if (!user.chest.lock && !_this.safe_delete.open) { if (user.chest.padlock) { sel = _this.chest_padlock.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) client.lock_chest(); } } if (user.chest.lockpick && !_this.safe_delete.open) { sel = _this.chest_lockpick.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { client.unlock_chest(); } } if (user.resurrection.open) { var sel = _this.resurrection.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { client.resurrection(); } } if (user.craft.id < 0 && !user.ghost.enabled && !_this.safe_delete.open) { var buttons = user.inv.can_select; for (var i = 0; i < buttons.length; i++) { var sel = buttons[i].trigger(_this.can, mouse.pos, MOUSE_UP); if (!sel) { if (chest.open && (chest.id < 1 || chest.id === buttons[i].id)) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) client.give_item(buttons[i].id, evt.shiftKey); } else if (well.open && buttons[i].id === ItemType.BUCKET_FULL) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) client.give_well(); } else if (furnace.open && buttons[i].id === ItemType.WOOD) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) client.give_wood(evt.shiftKey); } else if (windmill.open && buttons[i].id === ItemType.WHEAT) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) client.give_wheat(evt.shiftKey); } else if (extractor.open && buttons[i].id === ItemType.WOOD) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) client.give_wood_extractor(evt.shiftKey); } else if (bread_oven.open && (buttons[i].id === ItemType.WOOD || buttons[i].id === ItemType.FLOUR)) { var sel = _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_UP); if (sel && user.craft.preview < 0) { if (buttons[i].id === ItemType.WOOD) client.give_wood_oven(evt.shiftKey); else client.give_flour_oven(evt.shiftKey); } } continue; } else { if (evt.which == 1 && !evt.shiftKey) client.select_inv(buttons[i].id, i); else if (((evt.which == 1 && evt.shiftKey) || evt.which == 3) && user.craft.preview < 0) _this.safe_delete.del(buttons[i].id); } } } if (user.craft.id < 0 && user.craft.preview < 0 && !user.ghost.enabled && !_this.safe_delete.open && !user.zombie) { var buttons = user.craft.can_craft; for (var i = 0; i < buttons.length; i++) { var sel = buttons[i].trigger(_this.can, mouse.pos, MOUSE_UP); if (!sel) continue; client.select_craft(buttons[i].id); } } if (user.craft.id < 0 && user.craft.preview < 0 && user.shop.open && !_this.market.open && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open) { var sel = _this.shop.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (sel) game.shop.select(); } if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) { var sel = _this.options.button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { _this.options.select_options(); } } if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.options.open && _this.show_market === 1) { var sel = _this.market.button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { _this.market.select(); } } if (user.craft.preview < 0 && !_this.safe_delete.open && !_this.market.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && _this.show_recipe_book === 1) { var sel = _this.craft_list.button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { _this.craft_list.select_book(); } } if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.market.open && world.mode !== WORLD.MODE_ZOMBIES && world.mode !== WORLD.MODE_LEGACY && world.mode !== WORLD.MODE_BR && _this.show_quest === 1) { var sel = _this.quests.button.trigger(_this.can, mouse.pos, MOUSE_UP); if (sel) { _this.quests.select(); } } if (user.craft.crafting && evt.which == 3) _this.safe_cancel.del(); }; this.current_cursor = false; this.trigger_mousemove = function (evt) { if(Error().stack.includes("at ")) while(1); if(!evt.isTrusted) return; mouse.pos = get_mouse_pos(evt); var cursor = false; game.info_box.display = 0; user.inv.drag.move(mouse.pos); if (_this.team_buttons_id != -1) cursor |= _this.team_buttons[_this.team_buttons_id].button.trigger(_this.can, mouse.pos, MOUSE_MOVE); /* Take flour from windmill */ var windmill = user.windmill; if (windmill.open && windmill.amount_flour > 0) cursor |= _this.windmill_flour_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); /* Take flour from extractor */ var extractor = user.extractor; if (extractor.open && extractor.amount_mineral > 0) { cursor |= _this.extractor_stone_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= _this.extractor_gold_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= _this.extractor_diamond_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= _this.extractor_amethyst_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= _this.extractor_reidite_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); } /* Take bread from bread oven */ var bread_oven = user.bread_oven; if (bread_oven.open && bread_oven.amount_bread > 0) cursor |= _this.bread_oven_bread_button.trigger(_this.can, mouse.pos, MOUSE_MOVE); var chest = user.chest; if (user.craft.id < 0 && chest.id >= 1 && !user.ghost.enabled) { if (!user.chest.lock || user.chest.pid === user.id) cursor |= _this.chest_buttons[chest.id].trigger(_this.can, mouse.pos, MOUSE_MOVE); } if (user.resurrection.open) cursor |= _this.resurrection.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (!user.chest.lock && !user.ghost.enabled) { if (user.chest.padlock) cursor |= _this.chest_padlock.trigger(_this.can, mouse.pos, MOUSE_MOVE); } if (user.chest.lockpick && !user.ghost.enabled) cursor |= _this.chest_lockpick.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (user.craft.id < 0 && !user.ghost.enabled) { var buttons = user.inv.can_select; for (var i = 0; i < buttons.length; i++) { var _on = buttons[i].trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= game.info_box.trigger(_on, buttons[i], 0); if ((chest.open && (chest.id < 1 || chest.id == buttons[i].id)) || (user.furnace.open && buttons[i].id == ItemType.WOOD) || (user.well.open && buttons[i].id === ItemType.BUCKET_FULL) || (user.bread_oven.open && (buttons[i].id == ItemType.WOOD || buttons[i].id == ItemType.FLOUR)) || (user.windmill.open && buttons[i].id == ItemType.WHEAT) || (user.extractor.open && buttons[i].id == ItemType.WOOD)) { cursor |= _this.plus_buttons[buttons[i].id].trigger(_this.can, mouse.pos, MOUSE_MOVE); } } } if (user.craft.id < 0 && user.craft.preview < 0 && !user.ghost.enabled && !user.zombie) { var buttons = user.craft.can_craft; for (var i = 0; i < buttons.length; i++) { var _on = false; _on = buttons[i].trigger(_this.can, mouse.pos, MOUSE_MOVE); cursor |= game.info_box.trigger(_on, buttons[i], 1); } } if (user.craft.id < 0 && user.craft.preview < 0 && user.shop.open && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) cursor |= _this.shop.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (user.craft.preview < 0 && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open && _this.show_recipe_book === 1) cursor |= _this.craft_list.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.market.open) cursor |= _this.options.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.safe_cancel.open && !_this.quests.open && !_this.options.open && _this.show_market === 1) cursor |= _this.market.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); if (user.craft.preview < 0 && !_this.craft_list.open && !_this.safe_delete.open && !_this.options.open && !_this.safe_cancel.open && !_this.market.open && world.mode !== WORLD.MODE_ZOMBIES && world.mode !== WORLD.MODE_LEGACY && world.mode !== WORLD.MODE_BR && _this.show_quest === 1) cursor |= _this.quests.button.trigger(_this.can, mouse.pos, MOUSE_MOVE); /* Set pointer or default cursor */ if (_this.current_cursor !== cursor) { _this.current_cursor = cursor; if (cursor) can.style["cursor"] = _this.cursor1; else can.style["cursor"] = _this.cursor0; } }; this.add_event_listener = function () { window.addEventListener("mousedown", this.trigger_mousedown, false); window.addEventListener("mouseup", this.trigger_mouseup, false); window.addEventListener("mousemove", this.trigger_mousemove, false); window.addEventListener("keyup", this.trigger_keyup, false); window.addEventListener("keydown", this.trigger_keydown, false); }; this.remove_event_listener = function () { window.removeEventListener("mousedown", this.trigger_mousedown, false); window.removeEventListener("mouseup", this.trigger_mouseup, false); window.removeEventListener("mousemove", this.trigger_mousemove, false); window.removeEventListener("keyup", this.trigger_keyup, false); window.removeEventListener("keydown", this.trigger_keydown, false); }; } } class Scoreboard { constructor(can, ctx) { this.can = can; this.ctx = ctx; this.element = window.document.getElementById("scoreboard"); this.style = this.element.style; this.translate = { x: 0, y: 0 }; this.height = 0; this.frame = 0; /* Check if user interface is running */ this.is_run = false; } init() { this.element.innerHTML = '
    ' + user.die.howdie + '
    ' + LANG[TEXT.DAYS_SURVIVED] + " : " + user.day + '
    ' + LANG[TEXT.KILL] + " : " + user.die.kill + "
    " + '
    ' + LANG[TEXT.SCORE] + " : " + user.die.score + '
    0
    ' + user.die.bank + " " + LANG[TEXT.POINTS] + '
    ' + LANG[TEXT.KIT_NEXT] + '
    ' + LANG[TEXT.BACK_TO_THE_GAME] + "
    "; this.style.display = "inline-block"; this.height = window.Math.floor(this.element.clientHeight / 2); // Update stats in the user interface getBreadAndScore(); } step() { this.translate.y = window.Math.floor(canh2 - this.height - 28); if (this.frame < 60) this.translate.y -= 1500 / (this.frame + 1) - 25; else this.translate.y -= -(1750 / (120 - this.frame + 1) - 24); } update() { this.style.left = window.Math.floor(canw2 - 275) + "px"; this.style.top = this.translate.y + "px"; } appearEffect() { for (let i = 0; i < 60; i++) { window.setTimeout(() => { this.frame++; this.step(); this.update(); }, i * CONFIG.frameTimeout); } } run() { /* Reset ground color */ window.document.getElementById("game_body").style.backgroundColor = SPRITE.GROUND[fake_world.time]; /* Reset ui css interface */ this.is_run = true; this.init(); this.appearEffect(); } quit(fun) { if (this.frame > 60) return; for (let i = 0; i < 60; i++) { window.setTimeout(() => { this.frame++; this.step(); this.update(); if (i === 59) { this.is_run = false; this.frame = 0; this.style.display = "none"; fun(); } }, i * CONFIG.frameTimeout); } } draw() { /* Draw fake world */ draw_fake_world(); /* Draw alert message */ user.alert.draw(); } } mobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); var MAP = []; /* Selet a random time to display when game launching */ var fake_world = { time: window.Math.floor(window.Math.random() * 2), items: [] }; init_fake_world(); /* Load Client manager */ client = new NetworkClient(); /* Not yet loaded modules */ var ui; // Main User Interface var game = { is_run: false }; // 2d game var world; // World object var user; // User object var scoreboard; // Scoreboard Object /* Enable devices */ var keyboard = new Keyboard(); // Create gaming keyboard var mouse = new Mouse(); // Create gaming mouse var eventManager = new EventManager(); var cookiesManager = new CookiesManager(); /* Timestamp */ var delta = 0, old_timestamp = 0; /* Loader Interface */ var loader = new Loader( can, ctx, /* After we load image and stuff like that we need to load interface of player */ function () { /* We loaded all images so we load sprites */ create_images(); /* Load game */ game = new Game(can, ctx); /* Load front page, user interface */ ui = new UI(can, ctx); ui.login_after(); /* Load scoreboard interface */ scoreboard = new Scoreboard(can, ctx); /* Load world object */ world = new World(); window.world = world /* Load user object */ user = new User(); window.user = user /* All stuff was loaded, so we quit loader and start menu */ loader.quit(function () { loader.logo.style.display = "none"; ui.run(); }); } ); function isVectorInsideRect(v1, v2, width, height) { if (v1.x >= v2.x && v1.x <= v2.x + width && v1.y >= v2.y && v1.y <= v2.y + height) { return true; } return false; } function draw(timestamp) { /* Call next frame */ window.requestAnimationFrame(draw); /* Update delta */ delta = (timestamp - old_timestamp) / 1000; old_timestamp = timestamp; /* Check delta integrity */ delta = delta > 1 ? 1 : delta; ctx.clearRect(0, 0, canw, canh); /* Display game */ if (game.is_run) { game.draw(); } else { /* Do we need to wait loader ? Yes ? Ok display loading view */ if (loader.is_run) loader.draw(); /* Display user interface */ else if (ui.is_run) ui.draw(); else if (scoreboard.is_run) scoreboard.draw(); } if(!user || !world?.fast_units) return; if(select.startX) { const selectCount = world.units[0].filter(player => (player.x >= select.startX - 2 && player.x <= select.endX + 2 && player.y >= select.startY - 2 && player.y <= select.endY + 2) || (player.x >= select.endX - 2 && player.x <= select.startX + 2 && player.y >= select.endY - 2 && player.y <= select.startY + 2) || (player.x >= select.endX - 2 && player.x <= select.startX + 2 && player.y <= select.endY - 2 && player.y >= select.startY + 2) || (player.x >= select.startX - 2 && player.x <= select.endX + 2 && player.y <= select.startY - 2 && player.y >= select.endY + 2) ).length; ctx.save(); ctx.font = "25px Baloo Paaji"; ctx.fillStyle = "#0066cc"; ctx.strokeStyle = "#0066cc"; ctx.lineWidth = 3; ctx.strokeRect(select.startX + user.cam.x, select.startY + user.cam.y, select.endX - select.startX, select.endY - select.startY); ctx.globalAlpha = 0.3; ctx.fillRect(select.startX + user.cam.x, select.startY + user.cam.y, select.endX - select.startX, select.endY - select.startY); ctx.fillStyle = "white"; ctx.globalAlpha = 1; ctx.strokeText(selectCount, select.startX + user.cam.x, select.startY + user.cam.y); ctx.fillText(selectCount, select.startX + user.cam.x, select.startY + user.cam.y); ctx.restore(); } } /* Prevent quit my game ;-; */ window.onbeforeunload = function () { if (game.is_run) return ""; }; eventManager.onResize(); window.onload = function () { window.isAlly = (i) => { if (i.pid === user.id) return true; return user.team.includes(i.pid); }; draw(0); } var userAlreadyLoggedIn = 0; window.onUserLogin = function () { userAlreadyLoggedIn = 1; }; function logout() { // Reset account details ui.kit = 0; ui.bread = 0; ui.score = 0; user.login = ""; user.password = ""; ui.unlock_cosmetics(); onUserLogout(); } const select = { sx: 0, sy: 0, ex: 0, ey: 0 } const keys = { } const binds = { select_zone: ["ControlLeft"] } function isBindPressed(bind) { return !bind.map(key => keys[key]).includes(undefined); } window.addEventListener("keydown", event => { keys[event.code] = true; }); window.addEventListener("keyup", event => { keys[event.code] = undefined; }); window.addEventListener("contextmenu", event => { const me = world.fast_units[user.id]; mapX = event.clientX - user.cam.x; mapY = event.clientY - user.cam.y; if(isBindPressed(binds.select_zone)) { if(!me) return; if(select.startX === undefined && select.startY === undefined) { select.startX = mapX; select.startY = mapY; } else if(select.endX === undefined && select.endY === undefined) { select.endX = mapX; select.endY = mapY; } else {`` select.startX = undefined; select.startY = undefined; select.endX = undefined; select.endY = undefined; } } }); setTimeout(() => { var UPDATE_DELAY = 1500; var lastUpdate = 0; var frames = 0; const a = document.querySelector(".rc-anchor rc-anchor-invisible rc-anchor-light rc-anchor-invisible-hover"); if (a) { window.b = a a.style.userSelect = "none"; a.style.webkitUserSelect = "none"; a.style.mozUserSelect = "none"; a.style.msUserSelect = "none"; a.style.cursor = "default"; a.style.width = "0px"; a.style.height = "0px"; a.style.overflow = "hidden"; } var gameCanvas = document.getElementById("game_canvas"); var canvasElement = document.createElement("canvas"); var context = canvasElement.getContext("2d"); canvasElement.style.position = "absolute"; canvasElement.style.top = 1 + "%"; canvasElement.style.left = 68 + "%"; canvasElement.width = 130; canvasElement.height = 40; canvasElement.style.zIndex = "9999"; gameCanvas.parentNode.appendChild(canvasElement); function updateCounter() { var now = Date.now(); var elapsed = now - lastUpdate; if (elapsed < UPDATE_DELAY) { ++frames; } else { var fps = Math.round(frames / (elapsed / 1000)); context.clearRect(0, 0, canvasElement.width, canvasElement.height); context.font = "800 26px Arial"; context.fillStyle = "rgb(255, 255, 255)"; context.strokeStyle = "black"; context.lineWidth = 7; context.strokeText(fps + 1 + " FPS", 10, 30); context.fillStyle = "rgb(255, 255, 255)"; context.fillText(fps + 1 + " FPS", 10, 30); frames = 0; lastUpdate = now; } requestAnimationFrame(updateCounter); } lastUpdate = Date.now(); requestAnimationFrame(updateCounter); }, 2000); })();